瀏覽代碼

cleanup code and fix

Cleanup code with plugin.xml and gradle.kts
Fix the issue of inability to view documents within the plugin project
Seedking 1 年之前
父節點
當前提交
adbc2934d1

+ 61 - 66
build.gradle.kts

@@ -1,80 +1,86 @@
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
 fun properties(key: String) = project.findProperty(key).toString()
 fun properties(key: String) = project.findProperty(key).toString()
 
 
+//read local workspace file to string
+val localChangeNotes: String = file("${projectDir}/change-notes.html").readText(Charsets.UTF_8)
+val localDescription: String = file("${projectDir}/description.html").readText(Charsets.UTF_8)
+
+
 plugins {
 plugins {
     id("java")
     id("java")
     //gradle-intellij-plugin
     //gradle-intellij-plugin
-    id("org.jetbrains.intellij") version "1.16.1"
+    id("org.jetbrains.intellij") version "1.17.1"
     //kotlin
     //kotlin
     id("org.jetbrains.kotlin.jvm") version "1.9.21"
     id("org.jetbrains.kotlin.jvm") version "1.9.21"
 
 
     id("org.jetbrains.changelog") version "2.2.0"
     id("org.jetbrains.changelog") version "2.2.0"
 }
 }
 
 
-allprojects {
-    apply {
-        plugin("idea")
-        plugin("kotlin")
-        plugin("org.jetbrains.intellij")
-    }
+group = "io.xmake"
 
 
-    repositories {
-        mavenLocal()
-        mavenCentral()
-        gradlePluginPortal()
-        maven("https://maven.aliyun.com/repository/public/")
-        maven("https://oss.sonatype.org/content/repositories/snapshots/")
-        maven("https://cache-redirector.jetbrains.com/intellij-dependencies")
-    }
+repositories {
+    maven("https://cache-redirector.jetbrains.com/www.jetbrains.com/intellij-repository")
+    mavenLocal()
+    mavenCentral()
+    gradlePluginPortal()
+    maven("https://maven.aliyun.com/repository/public/")
+    maven("https://oss.sonatype.org/content/repositories/snapshots/")
+    maven("https://cache-redirector.jetbrains.com/intellij-dependencies")
+}
 
 
-    configurations {
-        all {
-            // Allows using project dependencies instead of IDE dependencies during compilation running
-            resolutionStrategy.sortArtifacts(ResolutionStrategy.SortOrder.DEPENDENCY_FIRST)
-        }
-    }
+intellij {
+    type.set("CL")
+    version.set("2023.3.3")
+    downloadSources.set(false)
+    ideaDependencyCachePath.set(dependencyCachePath)
+    updateSinceUntilBuild.set(true)
+    plugins.set(listOf(
+        "com.intellij.clion",
+        "com.intellij.cidr.base",
+        "com.intellij.cidr.lang")
+    )
+}
 
 
-    // See https://github.com/JetBrains/gradle-intellij-plugin/
-    intellij {
-        pluginName.set(properties("pluginName"))
-        version.set(properties("baseVersion"))
-        //type.set(properties("platformType"))
-        downloadSources.set(properties("platformDownloadSources").toBoolean())
-        ideaDependencyCachePath.set(dependencyCachePath)
-        updateSinceUntilBuild.set(true)
-        plugins.set(properties("platformPlugins").split(',').map(String::trim).filter(String::isNotEmpty))
+tasks {
+    withType<JavaCompile> {
+        sourceCompatibility = "17"
+        targetCompatibility = "17"
+    }
+    withType<KotlinCompile> {
+        kotlinOptions.jvmTarget = "17"
     }
     }
 
 
-    tasks {
-        withType<JavaCompile> {
-            sourceCompatibility = "17"
-            targetCompatibility = "17"
-        }
-        withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
-            kotlinOptions.jvmTarget = "17"
-        }
-
-        test {
-            useJUnitPlatform()
-        }
-        getByName("buildSearchableOptions").enabled = false
+    test {
+        useJUnitPlatform()
+    }
 
 
-        patchPluginXml {
-            version.set(properties("pluginVersion"))
-            sinceBuild.set(properties("pluginSinceBuild"))
-            untilBuild.set(properties("pluginUntilBuild"))
-        }
+    patchPluginXml {
+        version = properties("pluginVersion")
+        sinceBuild = properties("pluginSinceBuild")
+        untilBuild = properties("pluginUntilBuild")
+        changeNotes = localChangeNotes
+        description = localDescription
+    }
 
 
         runPluginVerifier {
         runPluginVerifier {
-            ideVersions.set(properties("pluginVerifierIdeVersions").split(',').map(String::trim).filter(String::isNotEmpty))
+            ideVersions.set(listOf(
+                "2022.2.5",
+                "2022.3",
+                "2023.1",
+                "2023.2",
+                "2023.3",
+                "2024.1 EAP",
+                )
+            )
         }
         }
 
 
     }
     }
 
 
-    dependencies {
-        implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.21")
-        testImplementation("org.junit.jupiter:junit-jupiter-api:5.7.2")
-        testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.7.2")
-    }
+dependencies {
+    implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.21")
+    testImplementation("org.junit.jupiter:junit-jupiter-api:5.7.2")
+    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.7.2")
 }
 }
 
 
 
 
@@ -86,15 +92,4 @@ val Project.dependencyCachePath
             cachePath.mkdirs()
             cachePath.mkdirs()
         }
         }
         return cachePath.absolutePath
         return cachePath.absolutePath
-    }
-
-
-project(":clion") {
-    intellij {
-        version.set(properties("clionVersion"))
-        plugins.set(properties("clionPlugins").split(',').map(String::trim).filter(String::isNotEmpty))
-    }
-    dependencies {
-        implementation(project(":"))
-    }
-}
+    }

+ 114 - 0
change-notes.html

@@ -0,0 +1,114 @@
+<strong>1.3.3</strong>
+<ul>
+    <li>[FIX]: Update version</li>
+</ul>
+<strong>1.3.2</strong>
+<ul>
+    <li>[FIX]: Remove -w option</li>
+</ul>
+<strong>1.3.1</strong>
+<ul>
+    <li>[FIX]: Upgrade Kotlin UI DSL version 1 to 2</li>
+</ul>
+<strong>1.3.0</strong>
+<ul>
+    <li>[FIX]: Update version</li>
+</ul>
+<strong>1.2.3</strong>
+<ul>
+    <li>[FIX]: Update version</li>
+</ul>
+<strong>1.2.2</strong>
+<ul>
+    <li>[FIX]: Fix requires</li>
+</ul>
+<strong>1.2.1</strong>
+<ul>
+    <li>[FIX]: Update version</li>
+</ul>
+<strong>1.2.0</strong>
+<ul>
+    <li>[FIX]: Improve new progrect</li>
+</ul>
+<strong>1.1.9</strong>
+<ul>
+    <li>[FIX]: Support future Clion version</li>
+</ul>
+<strong>1.1.8</strong>
+<ul>
+    <li>[FIX]: Update Clion version</li>
+</ul>
+<strong>1.1.7</strong>
+<ul>
+    <li>[FIX]: Update Clion version</li>
+</ul>
+<strong>1.1.6</strong>
+<ul>
+    <li>[FIX]: Improve configuration</li>
+</ul>
+<strong>1.1.5</strong>
+<ul>
+    <li>[FIX]: Fix create project</li>
+</ul>
+<strong>1.1.4</strong>
+<ul>
+    <li>[FIX]: Fix deprecated api warning again</li>
+</ul>
+<strong>1.1.3</strong>
+<ul>
+    <li>[FIX]: Fix deprecated api warning</li>
+</ul>
+<strong>1.1.2</strong>
+<ul>
+    <li>[FIX]: Fix bug for windows</li>
+</ul>
+<strong>1.1.1</strong>
+<ul>
+    <li>[NEW]: Support Clion 213.x</li>
+</ul>
+<strong>1.1.0</strong>
+<ul>
+    <li>[NEW]: Add icon for CMakelists and compile_commands</li>
+</ul>
+<strong>1.0.9</strong>
+<ul>
+    <li>[NEW]: Support to generate CMakelists and compile_commands</li>
+</ul>
+<strong>1.0.8</strong>
+<ul>
+    <li>[FIX]: Improve compatibility to support more versions</li>
+</ul>
+<strong>1.0.7</strong>
+<ul>
+    <li>[FIX]: Improve compatibility and add usage instruction</li>
+</ul>
+<strong>1.0.6</strong>
+<ul>
+    <li>[NEW]: Support latest CLion and IDEA Intellij</li>
+</ul>
+<strong>1.0.5</strong>
+<ul>
+    <li>[FIX]: Fix conflict issues with java</li>
+</ul>
+<strong>1.0.4</strong>
+<ul>
+    <li>[NEW]: Modify rebuild icon</li>
+</ul>
+<strong>1.0.3</strong>
+<ul>
+    <li>[NEW]: Improve exit code</li>
+</ul>
+<strong>1.0.2</strong>
+<ul>
+    <li>[NEW]: Create project (c/c++/rust/go/dlang/swift/objc)</li>
+</ul>
+<strong>1.0.1</strong>
+<ul>
+    <li>[NEW]: Quickstart</li>
+    <li>[NEW]: Project configuration</li>
+    <li>[NEW]: Run configuration</li>
+    <li>[NEW]: Menu tools</li>
+    <li>[NEW]: Tool windows</li>
+    <li>[NEW]: Build and run</li>
+    <li>[NEW]: Goto error and waring problems</li>
+</ul>

+ 0 - 11
clion/src/main/resources/META-INF/clion-only.xml

@@ -1,11 +0,0 @@
-<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude" allow-bundled-update="true">
-    <depends>com.intellij.cidr.base</depends>
-    <depends>com.intellij.clion</depends>
-    <depends>com.intellij.modules.cidr.debugger</depends>
-
-    <!--<extensions defaultExtensionNs="cidr.debugger">
-        <languageSupport language="lua" implementationClass="io.xmake.debugger.CppDebuggerLanguageSupport"/>
-        <lineBreakpointFileTypesProvider implementation="io.xmake.debugger.CppLineBreakpointFileTypesProvider"/>
-    </extensions>-->
-
-</idea-plugin>

+ 34 - 0
description.html

@@ -0,0 +1,34 @@
+<br>A XMake integration plugin in Intellij Platform<br>
+<p><a href="https://github.com/xmake-io/xmake-idea">Source Code</a> | <a href="https://discord.gg/xmake">Discord</a> | <a href="https://xmake.io/#/about/sponsor">Donate</a> | <a href="https://xmake.io">XMake Homepage</a></p>
+Features:
+<ul>
+    <li>xmake</li>
+    <ul>
+        <li>C/C++/Objc/Swift/Rust/Dlang/Golang ... support</li>
+        <li>Cross-platform support</li>
+        <li>Lua syntax</li>
+        <li><a href="https://github.com/xmake-io/xmake">More features and info about xmake</a></li>
+    </ul>
+    <li>Quickstart</li>
+    <li>Create project</li>
+    <li>Project configuration</li>
+    <li>Run configuration</li>
+    <li>Menu tools</li>
+    <li>Tool windows</li>
+    <li>Build and run</li>
+    <li>Goto error and waring problems</li>
+</ul>
+Usage instruction:<br><br>
+1. New project<br>
+New -> Project -> Select Xmake -> Select project template<br>
+<br>
+2. Open existing project<br>
+Open -> Select project folder with xmake.lua<br>
+<br>
+3. Build project<br>
+Menu -> Xmake -> Click 'Build Project'<br>
+<br>
+4. Run Target<br>
+Add run configuration -> Select Xmake -> Add run target
+Menu -> Xmake -> Click 'Run Target'<br>
+<p>中国朋友可以加QQ群交流及反馈BUG: 343118190</p>

+ 2 - 15
gradle.properties

@@ -1,20 +1,7 @@
-pluginGroup=io.xmake
-pluginName=IntelliJ Xmake Plugin
-pluginVersion=1.3.2
+pluginVersion=1.3.3
 pluginSinceBuild=223.7571.182
 pluginSinceBuild=223.7571.182
-pluginUntilBuild=232.*
+pluginUntilBuild=241.*
 
 
-# Plugin Verifier integration -> https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl
-# See https://jb.gg/intellij-platform-builds-list for available build versions
-pluginVerifierIdeVersions=2022.2.5, 2022.3, 2023.1, 2023.2
-baseVersion=IC-2023.2
-clionVersion=CL-2023.2
-platformDownloadSources=true
-
-# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
-# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22
-platformPlugins=com.intellij.java, org.jetbrains.kotlin
-clionPlugins=com.intellij.cidr.base, com.intellij.clion
 # Opt-out flag for bundling Kotlin standard library.
 # Opt-out flag for bundling Kotlin standard library.
 # See https://kotlinlang.org/docs/reference/using-gradle.html#dependency-on-the-standard-library for details.
 # See https://kotlinlang.org/docs/reference/using-gradle.html#dependency-on-the-standard-library for details.
 kotlin.stdlib.default.dependency=false
 kotlin.stdlib.default.dependency=false

+ 1 - 11
settings.gradle.kts

@@ -1,11 +1 @@
-
-pluginManagement {
-    repositories {
-        maven {
-            url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
-        }
-        gradlePluginPortal()
-    }
-}
-rootProject.name = "xmake-idea"
-include("clion")
+rootProject.name = "xmake-idea"

+ 0 - 2
src/main/resources/META-INF/idea-only.xml

@@ -1,2 +0,0 @@
-<idea-plugin>
-</idea-plugin>

+ 12 - 161
src/main/resources/META-INF/plugin.xml

@@ -2,170 +2,21 @@
 <idea-plugin>
 <idea-plugin>
     <id>io.xmake</id>
     <id>io.xmake</id>
     <name>XMake</name>
     <name>XMake</name>
-    <version>1.3.0</version>
     <vendor email="[email protected]" url="https://xmake.io">xmake.io</vendor>
     <vendor email="[email protected]" url="https://xmake.io">xmake.io</vendor>
-    <description><![CDATA[
-    A XMake integration plugin in Intellij Platform<br>
-    <p><a href="https://github.com/xmake-io/xmake-idea">Source Code</a> | <a href="https://discord.gg/xmake">Discord</a> | <a href="https://xmake.io/#/about/sponsor">Donate</a> | <a href="https://xmake.io">XMake Homepage</a></p>
-    Features:
-    <ul>
-        <li>xmake</li>
-        <ul>
-            <li>C/C++/Objc/Swift/Rust/Dlang/Golang ... support</li>
-            <li>Cross-platform support</li>
-            <li>Lua syntax</li>
-            <li><a href="https://github.com/xmake-io/xmake">More features and info about xmake</a></li>
-        </ul>
-        <li>Quickstart</li>
-        <li>Create project</li>
-        <li>Project configuration</li>
-        <li>Run configuration</li>
-        <li>Menu tools</li>
-        <li>Tool windows</li>
-        <li>Build and run</li>
-        <li>Goto error and waring problems</li>
-    </ul>
-    Usage instruction:<br><br>
-    1. New project<br>
-    New -> Project -> Select Xmake -> Select project template<br>
-    <br>
-    2. Open existing project<br>
-    Open -> Select project folder with xmake.lua<br>
-    <br>
-    3. Build project<br>
-    Menu -> Xmake -> Click 'Build Project'<br>
-    <br>
-    4. Run Target<br>
-    Add run configuration -> Select Xmake -> Add run target
-    Menu -> Xmake -> Click 'Run Target'<br>
-    <p>中国朋友可以加QQ群交流及反馈BUG: 343118190</p>
-    ]]></description>
 
 
-    <change-notes><![CDATA[
-    <strong>1.3.2</strong>
-    <ul>
-        <li>[FIX]: Remove -w option </li>
-    </ul>
-    <strong>1.3.1</strong>
-    <ul>
-        <li>[FIX]: Upgrade Kotlin UI DSL version 1 to 2 </li>
-    </ul>
-    <strong>1.3.0</strong>
-    <ul>
-        <li>[FIX]: Update version </li>
-    </ul>
-    <strong>1.2.3</strong>
-    <ul>
-        <li>[FIX]: Update version </li>
-    </ul>
-    <strong>1.2.2</strong>
-    <ul>
-        <li>[FIX]: Fix requires </li>
-    </ul>
-    <strong>1.2.1</strong>
-    <ul>
-        <li>[FIX]: Update version </li>
-    </ul>
-    <strong>1.2.0</strong>
-    <ul>
-        <li>[FIX]: Improve new progrect </li>
-    </ul>
-    <strong>1.1.9</strong>
-    <ul>
-        <li>[FIX]: Support future Clion version </li>
-    </ul>
-    <strong>1.1.8</strong>
-    <ul>
-        <li>[FIX]: Update Clion version </li>
-    </ul>
-    <strong>1.1.7</strong>
-    <ul>
-        <li>[FIX]: Update Clion version </li>
-    </ul>
-    <strong>1.1.6</strong>
-    <ul>
-        <li>[FIX]: Improve configuration </li>
-    </ul>
-    <strong>1.1.5</strong>
-    <ul>
-        <li>[FIX]: Fix create project </li>
-    </ul>
-    <strong>1.1.4</strong>
-    <ul>
-        <li>[FIX]: Fix deprecated api warning again </li>
-    </ul>
-    <strong>1.1.3</strong>
-    <ul>
-        <li>[FIX]: Fix deprecated api warning </li>
-    </ul>
-    <strong>1.1.2</strong>
-    <ul>
-        <li>[FIX]: Fix bug for windows </li>
-    </ul>
-    <strong>1.1.1</strong>
-    <ul>
-        <li>[NEW]: Support Clion 213.x </li>
-    </ul>
-    <strong>1.1.0</strong>
-    <ul>
-        <li>[NEW]: Add icon for CMakelists and compile_commands </li>
-    </ul>
-    <strong>1.0.9</strong>
-    <ul>
-        <li>[NEW]: Support to generate CMakelists and compile_commands </li>
-    </ul>
-    <strong>1.0.8</strong>
-    <ul>
-        <li>[FIX]: Improve compatibility to support more versions</li>
-    </ul>
-    <strong>1.0.7</strong>
-    <ul>
-        <li>[FIX]: Improve compatibility and add usage instruction</li>
-    </ul>
-    <strong>1.0.6</strong>
-    <ul>
-        <li>[NEW]: Support latest CLion and IDEA Intellij</li>
-    </ul>
-    <strong>1.0.5</strong>
-    <ul>
-        <li>[FIX]: Fix conflict issues with java</li>
-    </ul>
-    <strong>1.0.4</strong>
-    <ul>
-        <li>[NEW]: Modify rebuild icon</li>
-    </ul>
-    <strong>1.0.3</strong>
-    <ul>
-        <li>[NEW]: Improve exit code</li>
-    </ul>
-    <strong>1.0.2</strong>
-    <ul>
-        <li>[NEW]: Create project (c/c++/rust/go/dlang/swift/objc)</li>
-    </ul>
-    <strong>1.0.1</strong>
-    <ul>
-        <li>[NEW]: Quickstart</li>
-        <li>[NEW]: Project configuration</li>
-        <li>[NEW]: Run configuration</li>
-        <li>[NEW]: Menu tools</li>
-        <li>[NEW]: Tool windows</li>
-        <li>[NEW]: Build and run</li>
-        <li>[NEW]: Goto error and waring problems</li>
-    </ul>
-    ]]>
-    </change-notes>
-
-    <!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
-    <idea-version since-build="223.7571.182" until-build="232.*"/>
-
-    <!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
-         on how to target different products -->
-    <!--    <depends>com.intellij.modules.java</depends>-->
-    <depends>com.intellij.modules.lang</depends>
+    <!--all-->
     <depends>com.intellij.modules.platform</depends>
     <depends>com.intellij.modules.platform</depends>
-    <depends optional="true" config-file="../../../../clion/src/main/resources/META-INF/clion-only.xml">
-        com.intellij.modules.clion
-    </depends>
+    <depends>com.intellij.modules.lang</depends>
+    <depends>com.intellij.modules.xml</depends>
+    <depends>com.intellij.modules.vcs</depends>
+    <depends>com.intellij.modules.xdebugger</depends>
+    <!--clion and c/cpp language-->
+    <depends>com.intellij.clion</depends>
+    <depends>com.intellij.modules.cidr.ide</depends>
+    <depends>com.intellij.modules.cidr.lang</depends>
+    <depends>com.intellij.modules.cidr.modulemap.language</depends>
+    <!--c/cpp tools-->
+    <depends>com.intellij.modules.cmake</depends>
 
 
     <extensions defaultExtensionNs="com.intellij">
     <extensions defaultExtensionNs="com.intellij">