🔌 Plugin Oluşturma | JetBrains IDE

JetBrains, IntelliJ, WebStorm, Android Studio gibi JetBrains IDE'leri için eklenti veya plugin oluşturma

🎈 Eklenti Projesi Açma

  • 📢 Gradle-Java eklentisinin yüklü olduğundan emin olun

  • 👷‍♂️ New Project - Gradle - IntelliJ Platform Plugin - Java veya Kotlin / JVM

💁‍♂️ İsterseniz yeni Gradle olan Kotlin DSL'i de kullanabilirsiniz

‍🧙‍♂ Detaylı bilgi için Creating a Gradle-Based IntelliJ Platform Plugin with New Project Wizard alanına bakabilirsin.

👨‍💼 Tema Yönetimi

✨ Plugin Oluşturma

  • 🏗️ Eklentiyi oluşturmadan önce 👨‍💻 Plugin Structure alanına bakmanda fayda var

  • 🔨 Plugin yapılandırma ayarları için 👨‍💻 Plugin Configuration File alanına bakmalısın

  • 🤝 Plugin tüm platformlarda olması için plugin.xml dosyana since-build eklemen gerekir

  • 🖼️ Resim gösterme işlemleri için online URL'ler kullanmalısınız, yerel resimlere erişemez

📜 XML
☕ Gradle
🎃 Kotlin DSL
📜 XML
plugin.xml
<idea-version since-build="191.0" until-build="193.*"/>
☕ Gradle
build.gradle
patchPluginXml {
sinceBuild '191'
/*
def changelogPath = "$projectDir/build/CHANGELOG.html"
def readmePath = "$projectDir/build/README.html"
if (file(changelogPath).exists()) {
changeNotes file(changelogPath).text
}
if (file(readmePath).exists()) {
pluginDescription file(readmePath).text
}
*/
}
🎃 Kotlin DSL
build.gradle.kts
tasks.getByName
<org.jetbrains.intellij.tasks.PatchPluginXmlTask>("patchPluginXml") {
val sinceBuild = "191" // Android compatibility
/*
val changelogPath = "$projectDir/.github/assets/CHANGELOG.html"
val readmePath = "$projectDir/.github/assets/README.html"
*/
sinceBuild(sinceBuild)
/*
if (file(changelogPath).exists()) {
changeNotes(file(changelogPath).readText(Charsets.UTF_8))
}
if (file(readmePath).exists()) {
pluginDescription(file(readmePath).readText(Charsets.UTF_8))
}
*/
}

🛰️ Plugin'i Yayınlama

  • 🏳 Proje ilk kez yayınlanacaksa, elle Upload Plugin alanından upload edilmesi gerekir

  • 👨‍🔧 Kotlin Gradle için publishPlugin yapısı tasks.publishPlugin kullanılır

🎃 Kotlin DSL
🎃 Kotlin DSL
build.gradle.kts
tasks.publishPlugin {
token("TOKEN BİLGİSİ")
}

‍🧙‍♂ Detaylı bilgi için Project Setup alanına bakabilirsin.

🐞 Hata Notları

💾 Fail to load plugin descriptor from file *.jar

  • 📃 Description içeriğinizde css , javascript yada html attributes olması durumunda gelir

  • 🦄 Sadece html body içeriğini yazmanız gerekmekte

👁️ Açıklama alanında resimlerin gözükmemesi

  • 🙄 JetBrains html açıklamasını yüklerken diğer dosyaları yüklemez

  • 🔗 Tüm resim bağlantılarının internet üzerindeki resimlere olması gerekmektedir

🔗​ Faydalı Bağlantılar

🚀 Bu alandaki bağlantılar YEmoji ~Bağlantılar yapısına uygundur