import org.jetbrains.changelog.Changelog import org.jetbrains.changelog.markdownToHTML fun properties(key: String) = project.findProperty(key).toString() plugins { id("java") id("org.jetbrains.intellij") version "1.13.3" id("org.jetbrains.changelog") version "2.0.0" } version = properties("pluginVersion") group = properties("pluginGroup") repositories { mavenCentral() maven("https://jitpack.io") } dependencies { implementation("com.github.anas-elgarhy:alquran-cloud-api:v0.4.2-v1") implementation("com.miglayout:miglayout-swing:11.0") // implementation("com.github.goxr3plus:java-stream-player:10.0.2") implementation("com.googlecode.soundlibs:jlayer:1.0.1.4") compileOnly("org.projectlombok:lombok:1.18.26") annotationProcessor("org.projectlombok:lombok:1.18.26") testImplementation("org.projectlombok:lombok:1.18.26") testAnnotationProcessor("org.projectlombok:lombok:1.18.26") } java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } // Configure Gradle IntelliJ Plugin // Read more: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html intellij { pluginName.set(properties("pluginName")) version.set(properties("platformVersion")) type.set(properties("platformType")) plugins.set(listOf(/* Plugin Dependencies */)) } tasks { // Set the JVM compatibility versions withType { options.encoding = "UTF-8" sourceCompatibility = "17" targetCompatibility = "17" } wrapper { gradleVersion = properties("gradleVersion") } patchPluginXml { version.set(properties("pluginVersion")) sinceBuild.set(properties("pluginSinceBuild")) untilBuild.set("") // Extract the section from README.md and provide for the plugin's manifest pluginDescription.set( file("README.md").readText().lines().run { val start = "" val end = "" if (!containsAll(listOf(start, end))) { throw GradleException("Plugin description section not found in README.md:\n$start ... $end") } subList(indexOf(start) + 1, indexOf(end)) }.joinToString("\n").let { markdownToHTML(it) } ) // Get the latest available change notes from the changelog file changeNotes.set(provider { with(changelog) { renderItem( getOrNull(properties("pluginVersion")) ?: getLatest(), Changelog.OutputType.HTML, ) } }) } publishPlugin { dependsOn("patchChangelog") token.set(System.getenv("PUBLISH_TOKEN")) // pluginVersion is based on the SemVer (https://semver.org) and supports pre-release labels, like 2.1.7-alpha.3 // Specify pre-release label to publish the plugin in a custom Release Channel automatically. Read more: // https://plugins.jetbrains.com/docs/intellij/deployment.html#specifying-a-release-channel channels.set(listOf(properties("pluginVersion").split('-').getOrElse(1) { "default" }.split('.').first())) } }