1+ import org.jetbrains.changelog.Changelog
2+ import org.jetbrains.changelog.markdownToHTML
3+ import org.jetbrains.intellij.platform.gradle.TestFrameworkType
4+
5+ plugins {
6+ id(" java" ) // Java support
7+ alias(libs.plugins.kotlin) // Kotlin support
8+ alias(libs.plugins.intelliJPlatform) version " 2.7.1" // IntelliJ Platform Gradle Plugin
9+ alias(libs.plugins.changelog) // Gradle Changelog Plugin
10+ }
11+
12+ group = providers.gradleProperty(" pluginGroup" ).get()
13+ version = System .getenv(" LD_VERSION" ) ? : providers.gradleProperty(" pluginVersion" ).get()
14+
15+ // Set the JVM language level used to build the project.
16+ kotlin {
17+ jvmToolchain(17 )
18+ }
19+
20+ // Configure project's dependencies
21+ repositories {
22+ mavenLocal()
23+ maven(" https://jitpack.io" )
24+ mavenCentral()
25+
26+ // IntelliJ Platform Gradle Plugin Repositories Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-repositories-extension.html
27+ intellijPlatform {
28+ defaultRepositories()
29+ }
30+ }
31+
32+ // Dependencies are managed with Gradle version catalog - read more: https://docs.gradle.org/current/userguide/platforms.html#sub:version-catalog
33+ dependencies {
34+ api(" com.shuzijun:lc-sdk:0.0.3" )
35+ api(" com.alibaba:fastjson:1.2.47" )
36+ api(" org.jsoup:jsoup:1.11.3" )
37+ api(" io.sentry:sentry:1.7.9" ) {
38+ exclude(module = " slf4j-api" )
39+ }
40+ api(" org.scilab.forge:jlatexmath:1.0.7" )
41+ api(" org.apache.commons:commons-lang3:3.9" )
42+ api(" com.vladsch.flexmark:flexmark:0.62.2" )
43+ api(" com.vladsch.flexmark:flexmark-ext-attributes:0.62.2" )
44+ api(" io.github.biezhi:TinyPinyin:2.0.3.RELEASE" )
45+ // api(fileTree(mapOf("dir" to "src/main/resources/lib", "include" to listOf("*.jar"))))
46+
47+ testImplementation(libs.junit)
48+ testImplementation(libs.opentest4j)
49+
50+ // IntelliJ Platform Gradle Plugin Dependencies Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html
51+ intellijPlatform {
52+ create(providers.gradleProperty(" platformType" ), providers.gradleProperty(" platformVersion" ))
53+
54+ // Plugin Dependencies. Uses `platformBundledPlugins` property from the gradle.properties file for bundled IntelliJ Platform plugins.
55+ // bundledPlugins(providers.gradleProperty("platformBundledPlugins").map { it.split(',') })
56+
57+ // Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file for plugin from JetBrains Marketplace.
58+ // plugins(providers.gradleProperty("platformPlugins").map { it.split(',') })
59+
60+ // Module Dependencies. Uses `platformBundledModules` property from the gradle.properties file for bundled IntelliJ Platform modules.
61+ // bundledModules(providers.gradleProperty("platformBundledModules").map { it.split(',') })
62+
63+ testFramework(TestFrameworkType .Platform )
64+ }
65+ }
66+
67+ // Configure IntelliJ Platform Gradle Plugin - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-extension.html
68+ intellijPlatform {
69+ pluginConfiguration {
70+ name = providers.gradleProperty(" pluginName" )
71+ version = project.version.toString()
72+
73+ // Extract the <!-- Plugin description --> section from README.md and provide for the plugin's manifest
74+ description = providers.fileContents(layout.projectDirectory.file(providers.gradleProperty(" pluginDescription" ).get())).toString()
75+
76+ val changelog = project.changelog // local variable for configuration cache compatibility
77+ // Get the latest available change notes from the changelog file
78+ changeNotes = with (changelog) {
79+ renderItem(
80+ (getOrNull(project.version.toString() + " .0" ) ? : getUnreleased())
81+ .withHeader(false )
82+ .withEmptySections(false ),
83+ Changelog .OutputType .HTML ,
84+ )
85+ }
86+
87+ ideaVersion {
88+ sinceBuild = providers.gradleProperty(" pluginSinceBuild" )
89+ }
90+ }
91+
92+ publishing {
93+ token = providers.environmentVariable(" PUBLISH_TOKEN" )
94+ // The pluginVersion is based on the SemVer (https://semver.org) and supports pre-release labels, like 2.1.7-alpha.3
95+ // Specify pre-release label to publish the plugin in a custom Release Channel automatically. Read more:
96+ // https://plugins.jetbrains.com/docs/intellij/deployment.html#specifying-a-release-channel
97+ channels = providers.gradleProperty(" pluginVersion" ).map { listOf (it.substringAfter(' -' , " " ).substringBefore(' .' ).ifEmpty { " default" }) }
98+ }
99+
100+ pluginVerification {
101+ ides {
102+ recommended()
103+ }
104+ }
105+ }
106+
107+ // Configure Gradle Changelog Plugin - read more: https://github.com/JetBrains/gradle-changelog-plugin
108+ changelog {
109+ groups.empty()
110+ repositoryUrl = providers.gradleProperty(" pluginRepositoryUrl" )
111+ }
112+
113+
114+ tasks {
115+ wrapper {
116+ gradleVersion = providers.gradleProperty(" gradleVersion" ).get()
117+ }
118+
119+ publishPlugin {
120+ dependsOn(patchChangelog)
121+ }
122+ }
123+
124+ intellijPlatformTesting {
125+ runIde {
126+ register(" runIdeForUiTests" ) {
127+ task {
128+ jvmArgumentProviders + = CommandLineArgumentProvider {
129+ listOf (
130+ " -Dfile.encoding=utf-8"
131+ )
132+ }
133+ }
134+
135+ plugins {
136+ robotServerPlugin()
137+ }
138+ }
139+ }
140+ }
0 commit comments