Links
🔌

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
  • ⚙️ Eklentinin yönetimi plugin.xml dosyası ile yapılmaktadır
💁‍♂️ İ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

  • 🔨 En son eklenen tema, eklenti indirildiği zaman varsayılan olarak seçilir
  • ⭐ Varsayılan olmasını istediğiniz temanızı plugin.xml içerisindeki extensions bloğu içerisindeki en alta getirin

✨ 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
plugin.xml
<idea-version since-build="173.0"/>
build.gradle
patchPluginXml {
sinceBuild '173.0'
/*
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
}
*/
}
build.gradle.kts
tasks.getByName
<org.jetbrains.intellij.tasks.PatchPluginXmlTask>("patchPluginXml") {
val sinceBuild = "173.0" // 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
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