mirror of
https://github.com/JetBrains/intellij-platform-plugin-template.git
synced 2025-12-05 06:11:52 +00:00
Compare commits
No commits in common. "main" and "2.3.1" have entirely different histories.
7
.github/template-cleanup/gradle.properties
vendored
7
.github/template-cleanup/gradle.properties
vendored
@ -7,10 +7,11 @@ pluginRepositoryUrl = https://github.com/%REPOSITORY%
|
|||||||
pluginVersion = 0.0.1
|
pluginVersion = 0.0.1
|
||||||
|
|
||||||
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
|
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
|
||||||
pluginSinceBuild = 252
|
pluginSinceBuild = 243
|
||||||
|
|
||||||
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension
|
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension
|
||||||
platformVersion = 2025.2.5
|
platformType = IC
|
||||||
|
platformVersion = 2024.3.6
|
||||||
|
|
||||||
# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
|
# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
|
||||||
# Example: platformPlugins = com.jetbrains.php:203.4449.22, org.intellij.scala:2023.3.27@EAP
|
# Example: platformPlugins = com.jetbrains.php:203.4449.22, org.intellij.scala:2023.3.27@EAP
|
||||||
@ -21,7 +22,7 @@ platformBundledPlugins =
|
|||||||
platformBundledModules =
|
platformBundledModules =
|
||||||
|
|
||||||
# Gradle Releases -> https://github.com/gradle/gradle/releases
|
# Gradle Releases -> https://github.com/gradle/gradle/releases
|
||||||
gradleVersion = 9.2.1
|
gradleVersion = 9.0.0
|
||||||
|
|
||||||
# Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib
|
# Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib
|
||||||
kotlin.stdlib.default.dependency = false
|
kotlin.stdlib.default.dependency = false
|
||||||
|
|||||||
34
.github/workflows/build.yml
vendored
34
.github/workflows/build.yml
vendored
@ -41,18 +41,18 @@ jobs:
|
|||||||
|
|
||||||
# Check out the current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Set up the Java environment for the next steps
|
# Set up the Java environment for the next steps
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
uses: actions/setup-java@v5
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: zulu
|
distribution: zulu
|
||||||
java-version: 21
|
java-version: 21
|
||||||
|
|
||||||
# Setup Gradle
|
# Setup Gradle
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: gradle/actions/setup-gradle@v5
|
uses: gradle/actions/setup-gradle@v4
|
||||||
|
|
||||||
# Build plugin
|
# Build plugin
|
||||||
- name: Build plugin
|
- name: Build plugin
|
||||||
@ -71,7 +71,7 @@ jobs:
|
|||||||
|
|
||||||
# Store an already-built plugin as an artifact for downloading
|
# Store an already-built plugin as an artifact for downloading
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v5
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ steps.artifact.outputs.filename }}
|
name: ${{ steps.artifact.outputs.filename }}
|
||||||
path: ./build/distributions/content/*/*
|
path: ./build/distributions/content/*/*
|
||||||
@ -92,18 +92,18 @@ jobs:
|
|||||||
|
|
||||||
# Check out the current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Set up the Java environment for the next steps
|
# Set up the Java environment for the next steps
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
uses: actions/setup-java@v5
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: zulu
|
distribution: zulu
|
||||||
java-version: 21
|
java-version: 21
|
||||||
|
|
||||||
# Setup Gradle
|
# Setup Gradle
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: gradle/actions/setup-gradle@v5
|
uses: gradle/actions/setup-gradle@v4
|
||||||
with:
|
with:
|
||||||
cache-read-only: true
|
cache-read-only: true
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ jobs:
|
|||||||
# Collect Tests Result of failed tests
|
# Collect Tests Result of failed tests
|
||||||
- name: Collect Tests Result
|
- name: Collect Tests Result
|
||||||
if: ${{ failure() }}
|
if: ${{ failure() }}
|
||||||
uses: actions/upload-artifact@v5
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: tests-result
|
name: tests-result
|
||||||
path: ${{ github.workspace }}/build/reports/tests
|
path: ${{ github.workspace }}/build/reports/tests
|
||||||
@ -146,14 +146,14 @@ jobs:
|
|||||||
|
|
||||||
# Check out the current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit
|
ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit
|
||||||
fetch-depth: 0 # a full history is required for pull request analysis
|
fetch-depth: 0 # a full history is required for pull request analysis
|
||||||
|
|
||||||
# Set up the Java environment for the next steps
|
# Set up the Java environment for the next steps
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
uses: actions/setup-java@v5
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: zulu
|
distribution: zulu
|
||||||
java-version: 21
|
java-version: 21
|
||||||
@ -180,18 +180,18 @@ jobs:
|
|||||||
|
|
||||||
# Check out the current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Set up the Java environment for the next steps
|
# Set up the Java environment for the next steps
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
uses: actions/setup-java@v5
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: zulu
|
distribution: zulu
|
||||||
java-version: 21
|
java-version: 21
|
||||||
|
|
||||||
# Setup Gradle
|
# Setup Gradle
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: gradle/actions/setup-gradle@v5
|
uses: gradle/actions/setup-gradle@v4
|
||||||
with:
|
with:
|
||||||
cache-read-only: true
|
cache-read-only: true
|
||||||
|
|
||||||
@ -202,7 +202,7 @@ jobs:
|
|||||||
# Collect Plugin Verifier Result
|
# Collect Plugin Verifier Result
|
||||||
- name: Collect Plugin Verifier Result
|
- name: Collect Plugin Verifier Result
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
uses: actions/upload-artifact@v5
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: pluginVerifier-result
|
name: pluginVerifier-result
|
||||||
path: ${{ github.workspace }}/build/reports/pluginVerifier
|
path: ${{ github.workspace }}/build/reports/pluginVerifier
|
||||||
@ -220,7 +220,7 @@ jobs:
|
|||||||
|
|
||||||
# Check out the current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Remove old release drafts by using the curl request for the available releases with a draft flag
|
# Remove old release drafts by using the curl request for the available releases with a draft flag
|
||||||
- name: Remove Old Release Drafts
|
- name: Remove Old Release Drafts
|
||||||
|
|||||||
8
.github/workflows/release.yml
vendored
8
.github/workflows/release.yml
vendored
@ -27,20 +27,20 @@ jobs:
|
|||||||
|
|
||||||
# Check out the current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ github.event.release.tag_name }}
|
ref: ${{ github.event.release.tag_name }}
|
||||||
|
|
||||||
# Set up the Java environment for the next steps
|
# Set up the Java environment for the next steps
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
uses: actions/setup-java@v5
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: zulu
|
distribution: zulu
|
||||||
java-version: 21
|
java-version: 21
|
||||||
|
|
||||||
# Setup Gradle
|
# Setup Gradle
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: gradle/actions/setup-gradle@v5
|
uses: gradle/actions/setup-gradle@v4
|
||||||
with:
|
with:
|
||||||
cache-read-only: true
|
cache-read-only: true
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ jobs:
|
|||||||
|
|
||||||
# Create a pull request
|
# Create a pull request
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
if: ${{ github.event.release.body != '' }}
|
if: ${{ steps.properties.outputs.changelog != '' }}
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
6
.github/workflows/run-ui-tests.yml
vendored
6
.github/workflows/run-ui-tests.yml
vendored
@ -33,18 +33,18 @@ jobs:
|
|||||||
|
|
||||||
# Check out the current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Set up the Java environment for the next steps
|
# Set up the Java environment for the next steps
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
uses: actions/setup-java@v5
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: zulu
|
distribution: zulu
|
||||||
java-version: 21
|
java-version: 21
|
||||||
|
|
||||||
# Setup Gradle
|
# Setup Gradle
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: gradle/actions/setup-gradle@v5
|
uses: gradle/actions/setup-gradle@v4
|
||||||
with:
|
with:
|
||||||
cache-read-only: true
|
cache-read-only: true
|
||||||
|
|
||||||
|
|||||||
2
.github/workflows/template-cleanup.yml
vendored
2
.github/workflows/template-cleanup.yml
vendored
@ -19,7 +19,7 @@ jobs:
|
|||||||
|
|
||||||
# Check out the current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Cleanup project
|
# Cleanup project
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
|
|||||||
2
.github/workflows/template-verify.yml
vendored
2
.github/workflows/template-verify.yml
vendored
@ -23,7 +23,7 @@ jobs:
|
|||||||
|
|
||||||
# Check out the current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Compare `gradle.properties` with `.github/template-cleanup/gradle.properties`
|
# Compare `gradle.properties` with `.github/template-cleanup/gradle.properties`
|
||||||
- name: Verify gradle.properties
|
- name: Verify gradle.properties
|
||||||
|
|||||||
@ -5,7 +5,6 @@
|
|||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
<option name="gradleJvm" value="21" />
|
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
<option value="$PROJECT_DIR$" />
|
<option value="$PROJECT_DIR$" />
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
</option>
|
</option>
|
||||||
<option name="vmOptions" value="" />
|
<option name="vmOptions" value="" />
|
||||||
</ExternalSystemSettings>
|
</ExternalSystemSettings>
|
||||||
<ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
|
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||||
<DebugAllEnabled>false</DebugAllEnabled>
|
<DebugAllEnabled>false</DebugAllEnabled>
|
||||||
<RunAsTest>false</RunAsTest>
|
<RunAsTest>false</RunAsTest>
|
||||||
|
|||||||
33
CHANGELOG.md
33
CHANGELOG.md
@ -4,35 +4,6 @@
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
## [2.4.0] - 2025-11-25
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Use the GitHub event release body for a condition when creating the Release Draft
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
- Use `intellijIdea(version)` dependency helper instead of `create(type, version)`
|
|
||||||
- Upgrade Gradle Wrapper to `9.2.1`
|
|
||||||
- Update `platformVersion` to `2025.2.5`
|
|
||||||
- Change since build to `252` (2025.2)
|
|
||||||
- Dependencies - upgrade `org.jetbrains.intellij.platform` to `2.10.5`
|
|
||||||
- Dependencies - upgrade `org.jetbrains.changelog` to `2.5.0`
|
|
||||||
- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `2.2.21`
|
|
||||||
- Dependencies - upgrade `org.jetbrains.kotlinx.kover` to `0.9.3`
|
|
||||||
- Dependencies - upgrade `org.jetbrains.qodana` to `2025.2.2`
|
|
||||||
- Dependencies (GitHub Actions) - upgrade `actions/checkout` to `v5`
|
|
||||||
- Dependencies (GitHub Actions) - upgrade `actions/setup-java` to `v5`
|
|
||||||
- Dependencies (GitHub Actions) - upgrade `actions/upload-artifact` to `v5`
|
|
||||||
- Dependencies (GitHub Actions) - upgrade `gradle/actions/setup-gradle` to `v5`
|
|
||||||
- Dependencies (GitHub Actions) - upgrade `JetBrains/qodana-action` to `v2025.2.2`
|
|
||||||
|
|
||||||
### Removed
|
|
||||||
|
|
||||||
- Remove the `platformType` Gradle property
|
|
||||||
|
|
||||||
## [2.3.1] - 2025-08-09
|
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Add `platformBundledModules` to `gradle.properties` along with `bundledModules()` helper to the Gradle build file
|
- Add `platformBundledModules` to `gradle.properties` along with `bundledModules()` helper to the Gradle build file
|
||||||
@ -877,9 +848,7 @@
|
|||||||
- GitHub Actions to automate testing and deployment
|
- GitHub Actions to automate testing and deployment
|
||||||
- Kotlin support
|
- Kotlin support
|
||||||
|
|
||||||
[Unreleased]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.4.0...HEAD
|
[Unreleased]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.3.0...HEAD
|
||||||
[2.4.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.3.1...v2.4.0
|
|
||||||
[2.3.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.3.0...v2.3.1
|
|
||||||
[2.3.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.2.0...v2.3.0
|
[2.3.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.2.0...v2.3.0
|
||||||
[2.2.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.1.0...v2.2.0
|
[2.2.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.1.0...v2.2.0
|
||||||
[2.1.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.0.2...v2.1.0
|
[2.1.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.0.2...v2.1.0
|
||||||
|
|||||||
33
README.md
33
README.md
@ -1,8 +1,9 @@
|
|||||||
# IntelliJ Platform Plugin Template
|
# IntelliJ Platform Plugin Template
|
||||||
|
|
||||||
[][jb:github]
|
[][jb:github]
|
||||||
[](https://x.com/JBPlatform)
|
[](https://twitter.com/JBPlatform)
|
||||||
[][gh:build]
|
[][gh:build]
|
||||||
|
[](https://plugins.jetbrains.com/slack)
|
||||||
|
|
||||||
![IntelliJ Platform Plugin Template][file:intellij-platform-plugin-template-dark]
|
![IntelliJ Platform Plugin Template][file:intellij-platform-plugin-template-dark]
|
||||||
![IntelliJ Platform Plugin Template][file:intellij-platform-plugin-template-light]
|
![IntelliJ Platform Plugin Template][file:intellij-platform-plugin-template-light]
|
||||||
@ -54,7 +55,7 @@ In this README, we will highlight the following elements of template-project cre
|
|||||||
|
|
||||||
Before we dive into plugin development and everything related to it, it's worth mentioning the benefits of using GitHub Templates.
|
Before we dive into plugin development and everything related to it, it's worth mentioning the benefits of using GitHub Templates.
|
||||||
By creating a new project using the current template, you start with no history or reference to this repository.
|
By creating a new project using the current template, you start with no history or reference to this repository.
|
||||||
This allows you to create a new repository easily without copying and pasting previous content, cloning repositories, or clearing the history manually.
|
This allows you to create a new repository easily without copying and pasting previous content, clone repositories, or clearing the history manually.
|
||||||
|
|
||||||
All you have to do is click the <kbd>Use this template</kbd> button (you must be logged in with your GitHub account).
|
All you have to do is click the <kbd>Use this template</kbd> button (you must be logged in with your GitHub account).
|
||||||
|
|
||||||
@ -65,7 +66,7 @@ Once this is complete, open the newly created project's _Settings | Actions | Ge
|
|||||||
|
|
||||||
Now the project is ready to be cloned to your local environment and opened with [IntelliJ IDEA][jb:download-ij].
|
Now the project is ready to be cloned to your local environment and opened with [IntelliJ IDEA][jb:download-ij].
|
||||||
|
|
||||||
The most convenient way for getting your new project from GitHub is the <kbd>Get from VCS</kbd> action available on the Welcome Screen, where you can filter your GitHub repository by its name.
|
The most convenient way for getting your new project from GitHub is the <kbd>Get from VCS</kbd> action available on the Welcome Screen, where you can filter your GitHub repository by its name.
|
||||||
|
|
||||||
![Get from Version Control][file:get-from-version-control]
|
![Get from Version Control][file:get-from-version-control]
|
||||||
|
|
||||||
@ -73,7 +74,7 @@ The next step, after opening your project in IntelliJ IDEA, is to set the proper
|
|||||||
|
|
||||||
![Project Structure — SDK][file:project-structure-sdk.png]
|
![Project Structure — SDK][file:project-structure-sdk.png]
|
||||||
|
|
||||||
For the last step, you have to manually review the configuration variables described in the [`gradle.properties`][file:gradle.properties] file and *optionally* move sources from the `com.github.username.repository` package to the one that works best for you.
|
For the last step, you have to manually review the configuration variables described in the [`gradle.properties`][file:gradle.properties] file and *optionally* move sources from the *com.github.username.repository* package to the one that works best for you.
|
||||||
Then you can get to work implementing your ideas.
|
Then you can get to work implementing your ideas.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
@ -111,10 +112,10 @@ The project-specific configuration file [`gradle.properties`][file:gradle.proper
|
|||||||
| `pluginRepositoryUrl` | Repository URL used for generating URLs by the [Gradle Changelog Plugin][gh:gradle-changelog-plugin] |
|
| `pluginRepositoryUrl` | Repository URL used for generating URLs by the [Gradle Changelog Plugin][gh:gradle-changelog-plugin] |
|
||||||
| `pluginVersion` | The current version of the plugin in [SemVer][semver] format. |
|
| `pluginVersion` | The current version of the plugin in [SemVer][semver] format. |
|
||||||
| `pluginSinceBuild` | The `since-build` attribute of the `<idea-version>` tag. |
|
| `pluginSinceBuild` | The `since-build` attribute of the `<idea-version>` tag. |
|
||||||
|
| `platformType` | The type of IDE distribution. |
|
||||||
| `platformVersion` | The version of the IntelliJ Platform IDE will be used to build the plugin. |
|
| `platformVersion` | The version of the IntelliJ Platform IDE will be used to build the plugin. |
|
||||||
| `platformPlugins` | Comma-separated list of dependencies to the plugins from the Plugin Repositories. |
|
| `platformPlugins` | Comma-separated list of dependencies to the plugins from the Plugin Repositories. |
|
||||||
| `platformBundledPlugins` | Comma-separated list of dependencies to the bundled IDE plugins. |
|
| `platformBundledPlugins` | Comma-separated list of dependencies to the bundled IDE plugins. |
|
||||||
| `platformBundledModules` | Comma-separated list of dependencies to the bundled IDE modules. |
|
|
||||||
| `gradleVersion` | Version of Gradle used for plugin development. |
|
| `gradleVersion` | Version of Gradle used for plugin development. |
|
||||||
|
|
||||||
The properties listed define the plugin itself or configure the [intellij-platform-gradle-plugin][gh:intellij-platform-gradle-plugin] – check its documentation for more details.
|
The properties listed define the plugin itself or configure the [intellij-platform-gradle-plugin][gh:intellij-platform-gradle-plugin] – check its documentation for more details.
|
||||||
@ -267,9 +268,9 @@ The final test report is sent to [CodeCov][codecov] for better results visualiza
|
|||||||
|
|
||||||
### UI tests
|
### UI tests
|
||||||
|
|
||||||
If your plugin provides complex user interfaces, you should consider covering them with tests and the functionality they use.
|
If your plugin provides complex user interfaces, you should consider covering them with tests and the functionality they utilize.
|
||||||
|
|
||||||
[IntelliJ UI Test Robot][gh:intellij-ui-test-robot] allows you to write and execute UI tests within the JetBrains IDE running instance.
|
[IntelliJ UI Test Robot][gh:intellij-ui-test-robot] allows you to write and execute UI tests within the IntelliJ IDE running instance.
|
||||||
You can use the [XPath query language][xpath] to find components in the currently available IDE view.
|
You can use the [XPath query language][xpath] to find components in the currently available IDE view.
|
||||||
Once IDE with `robot-server` has started, you can open the `http://localhost:8082` page that presents the currently available IDEA UI components hierarchy in HTML format and use a simple `XPath` generator, which can help test your plugin's interface.
|
Once IDE with `robot-server` has started, you can open the `http://localhost:8082` page that presents the currently available IDEA UI components hierarchy in HTML format and use a simple `XPath` generator, which can help test your plugin's interface.
|
||||||
|
|
||||||
@ -324,10 +325,10 @@ Within the default project structure, there is a `.run` directory provided conta
|
|||||||
|
|
||||||
![Run/Debug configurations][file:run-debug-configurations.png]
|
![Run/Debug configurations][file:run-debug-configurations.png]
|
||||||
|
|
||||||
| Configuration name | Description |
|
| Configuration name | Description |
|
||||||
|--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| Run Plugin | Runs [`:runIde`][gh:intellij-platform-gradle-plugin-runIde] IntelliJ Platform Gradle Plugin task. Use the *Debug* icon for plugin debugging. |
|
| Run Plugin | Runs [`:runIde`][gh:intellij-platform-gradle-plugin-runIde] IntelliJ Platform Gradle Plugin task. Use the *Debug* icon for plugin debugging. |
|
||||||
| Run Tests | Runs [`:test`][gradle:lifecycle-tasks] Gradle task. |
|
| Run Tests | Runs [`:test`][gradle:lifecycle-tasks] Gradle task. |
|
||||||
| Run Verifications | Runs [`:verifyPlugin`][gh:intellij-platform-gradle-plugin-verifyPlugin] IntelliJ Platform Gradle Plugin task to check the plugin compatibility against the specified IntelliJ IDEs. |
|
| Run Verifications | Runs [`:verifyPlugin`][gh:intellij-platform-gradle-plugin-verifyPlugin] IntelliJ Platform Gradle Plugin task to check the plugin compatibility against the specified IntelliJ IDEs. |
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
@ -356,10 +357,10 @@ In the `.github/workflows` directory, you can find definitions for the following
|
|||||||
- Prepares a draft release of the GitHub Releases page for manual verification.
|
- Prepares a draft release of the GitHub Releases page for manual verification.
|
||||||
- [Release](.github/workflows/release.yml)
|
- [Release](.github/workflows/release.yml)
|
||||||
- Triggered on `released` event.
|
- Triggered on `released` event.
|
||||||
- Updates `CHANGELOG.md` file with the content provided the release note.
|
- Updates `CHANGELOG.md` file with the content provided with the release note.
|
||||||
- Signs the plugin with a provided certificate before publishing.
|
- Signs the plugin with a provided certificate before publishing.
|
||||||
- Publishes the plugin to JetBrains Marketplace using the provided `PUBLISH_TOKEN`.
|
- Publishes the plugin to JetBrains Marketplace using the provided `PUBLISH_TOKEN`.
|
||||||
- Sets a publication channel depending on the plugin version, i.e. `1.0.0-beta` -> `beta` channel.
|
- Sets publish channel depending on the plugin version, i.e. `1.0.0-beta` -> `beta` channel.
|
||||||
- Patches the Changelog and commits.
|
- Patches the Changelog and commits.
|
||||||
- [Run UI Tests](.github/workflows/run-ui-tests.yml)
|
- [Run UI Tests](.github/workflows/run-ui-tests.yml)
|
||||||
- Triggered manually.
|
- Triggered manually.
|
||||||
@ -397,7 +398,7 @@ All plugins and dependencies used by Gradle are managed with [Gradle version cat
|
|||||||
> annotations = { group = "org.jetbrains", name = "annotations", version.ref = "annotations" }
|
> annotations = { group = "org.jetbrains", name = "annotations", version.ref = "annotations" }
|
||||||
> ```
|
> ```
|
||||||
|
|
||||||
Keeping the project in good shape and having all the dependencies up to date requires time and effort, but it is possible to automate that process using [Dependabot][gh:dependabot].
|
Keeping the project in good shape and having all the dependencies up-to-date requires time and effort, but it is possible to automate that process using [Dependabot][gh:dependabot].
|
||||||
|
|
||||||
Dependabot is a bot provided by GitHub to check the build configuration files and review any outdated or insecure dependencies of yours – in case if any update is available, it creates a new pull request providing [the proper change][gh:dependabot-pr].
|
Dependabot is a bot provided by GitHub to check the build configuration files and review any outdated or insecure dependencies of yours – in case if any update is available, it creates a new pull request providing [the proper change][gh:dependabot-pr].
|
||||||
|
|
||||||
@ -443,7 +444,7 @@ You start with an almost empty changelog:
|
|||||||
Now proceed with providing more entries to the `Added` group, or any other one that suits your change the most (see [How do I make a good changelog?][keep-a-changelog-how] for more details).
|
Now proceed with providing more entries to the `Added` group, or any other one that suits your change the most (see [How do I make a good changelog?][keep-a-changelog-how] for more details).
|
||||||
|
|
||||||
When releasing a plugin update, you don't have to care about bumping the `[Unreleased]` header to the upcoming version – it will be handled automatically on the Continuous Integration (CI) after you publish your plugin.
|
When releasing a plugin update, you don't have to care about bumping the `[Unreleased]` header to the upcoming version – it will be handled automatically on the Continuous Integration (CI) after you publish your plugin.
|
||||||
GitHub Actions will swap it and provide you with an empty section for the next release so that you can proceed with your development:
|
GitHub Actions will swap it and provide you an empty section for the next release so that you can proceed with your development:
|
||||||
|
|
||||||
```
|
```
|
||||||
# YourPlugin Changelog
|
# YourPlugin Changelog
|
||||||
@ -521,7 +522,7 @@ You can still replace it or add the `/src/main/java` directory to start working
|
|||||||
|
|
||||||
### How to disable *tests* or *build* job using the `[skip ci]` commit message?
|
### How to disable *tests* or *build* job using the `[skip ci]` commit message?
|
||||||
|
|
||||||
Since February 2021, GitHub Actions [has supported the skip CI feature][github-actions-skip-ci].
|
Since February 2021, GitHub Actions [support the skip CI feature][github-actions-skip-ci].
|
||||||
If the message contains one of the following strings: `[skip ci]`, `[ci skip]`, `[no ci]`, `[skip actions]`, or `[actions skip]` – workflows will not be triggered.
|
If the message contains one of the following strings: `[skip ci]`, `[ci skip]`, `[no ci]`, `[skip actions]`, or `[actions skip]` – workflows will not be triggered.
|
||||||
|
|
||||||
### Why does the draft release no longer contain a built plugin artifact?
|
### Why does the draft release no longer contain a built plugin artifact?
|
||||||
|
|||||||
@ -29,14 +29,14 @@ repositories {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dependencies are managed with Gradle version catalog - read more: https://docs.gradle.org/current/userguide/version_catalogs.html
|
// Dependencies are managed with Gradle version catalog - read more: https://docs.gradle.org/current/userguide/platforms.html#sub:version-catalog
|
||||||
dependencies {
|
dependencies {
|
||||||
testImplementation(libs.junit)
|
testImplementation(libs.junit)
|
||||||
testImplementation(libs.opentest4j)
|
testImplementation(libs.opentest4j)
|
||||||
|
|
||||||
// IntelliJ Platform Gradle Plugin Dependencies Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html
|
// IntelliJ Platform Gradle Plugin Dependencies Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html
|
||||||
intellijPlatform {
|
intellijPlatform {
|
||||||
intellijIdea(providers.gradleProperty("platformVersion"))
|
create(providers.gradleProperty("platformType"), providers.gradleProperty("platformVersion"))
|
||||||
|
|
||||||
// Plugin Dependencies. Uses `platformBundledPlugins` property from the gradle.properties file for bundled IntelliJ Platform plugins.
|
// Plugin Dependencies. Uses `platformBundledPlugins` property from the gradle.properties file for bundled IntelliJ Platform plugins.
|
||||||
bundledPlugins(providers.gradleProperty("platformBundledPlugins").map { it.split(',') })
|
bundledPlugins(providers.gradleProperty("platformBundledPlugins").map { it.split(',') })
|
||||||
@ -98,7 +98,7 @@ intellijPlatform {
|
|||||||
token = providers.environmentVariable("PUBLISH_TOKEN")
|
token = providers.environmentVariable("PUBLISH_TOKEN")
|
||||||
// The pluginVersion is based on the SemVer (https://semver.org) and supports pre-release labels, like 2.1.7-alpha.3
|
// The 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:
|
// Specify pre-release label to publish the plugin in a custom Release Channel automatically. Read more:
|
||||||
// https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html#specifying-a-release-channel
|
// https://plugins.jetbrains.com/docs/intellij/deployment.html#specifying-a-release-channel
|
||||||
channels = providers.gradleProperty("pluginVersion").map { listOf(it.substringAfter('-', "").substringBefore('.').ifEmpty { "default" }) }
|
channels = providers.gradleProperty("pluginVersion").map { listOf(it.substringAfter('-', "").substringBefore('.').ifEmpty { "default" }) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ changelog {
|
|||||||
repositoryUrl = providers.gradleProperty("pluginRepositoryUrl")
|
repositoryUrl = providers.gradleProperty("pluginRepositoryUrl")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Configure Gradle Kover Plugin - read more: https://kotlin.github.io/kotlinx-kover/gradle-plugin/#configuration-details
|
// Configure Gradle Kover Plugin - read more: https://github.com/Kotlin/kotlinx-kover#configuration
|
||||||
kover {
|
kover {
|
||||||
reports {
|
reports {
|
||||||
total {
|
total {
|
||||||
|
|||||||
@ -4,13 +4,14 @@ pluginGroup = org.jetbrains.plugins.template
|
|||||||
pluginName = IntelliJ Platform Plugin Template
|
pluginName = IntelliJ Platform Plugin Template
|
||||||
pluginRepositoryUrl = https://github.com/JetBrains/intellij-platform-plugin-template
|
pluginRepositoryUrl = https://github.com/JetBrains/intellij-platform-plugin-template
|
||||||
# SemVer format -> https://semver.org
|
# SemVer format -> https://semver.org
|
||||||
pluginVersion = 2.4.0
|
pluginVersion = 2.3.1
|
||||||
|
|
||||||
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
|
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
|
||||||
pluginSinceBuild = 252
|
pluginSinceBuild = 243
|
||||||
|
|
||||||
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension
|
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension
|
||||||
platformVersion = 2025.2.5
|
platformType = IC
|
||||||
|
platformVersion = 2024.3.6
|
||||||
|
|
||||||
# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
|
# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
|
||||||
# Example: platformPlugins = com.jetbrains.php:203.4449.22, org.intellij.scala:2023.3.27@EAP
|
# Example: platformPlugins = com.jetbrains.php:203.4449.22, org.intellij.scala:2023.3.27@EAP
|
||||||
@ -21,7 +22,7 @@ platformBundledPlugins =
|
|||||||
platformBundledModules =
|
platformBundledModules =
|
||||||
|
|
||||||
# Gradle Releases -> https://github.com/gradle/gradle/releases
|
# Gradle Releases -> https://github.com/gradle/gradle/releases
|
||||||
gradleVersion = 9.2.1
|
gradleVersion = 9.0.0
|
||||||
|
|
||||||
# Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib
|
# Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib
|
||||||
kotlin.stdlib.default.dependency = false
|
kotlin.stdlib.default.dependency = false
|
||||||
|
|||||||
@ -4,11 +4,11 @@ junit = "4.13.2"
|
|||||||
opentest4j = "1.3.0"
|
opentest4j = "1.3.0"
|
||||||
|
|
||||||
# plugins
|
# plugins
|
||||||
changelog = "2.5.0"
|
changelog = "2.4.0"
|
||||||
intelliJPlatform = "2.10.5"
|
intelliJPlatform = "2.7.1"
|
||||||
kotlin = "2.2.21"
|
kotlin = "2.2.0"
|
||||||
kover = "0.9.3"
|
kover = "0.9.1"
|
||||||
qodana = "2025.2.2"
|
qodana = "2025.1.1"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
||||||
|
|||||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|||||||
3
gradlew
vendored
3
gradlew
vendored
@ -114,6 +114,7 @@ case "$( uname )" in #(
|
|||||||
NONSTOP* ) nonstop=true ;;
|
NONSTOP* ) nonstop=true ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
CLASSPATH="\\\"\\\""
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
# Determine the Java command to use to start the JVM.
|
||||||
@ -171,6 +172,7 @@ fi
|
|||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||||
if "$cygwin" || "$msys" ; then
|
if "$cygwin" || "$msys" ; then
|
||||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||||
|
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||||
|
|
||||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||||
|
|
||||||
@ -210,6 +212,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|||||||
|
|
||||||
set -- \
|
set -- \
|
||||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||||
|
-classpath "$CLASSPATH" \
|
||||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||||
"$@"
|
"$@"
|
||||||
|
|
||||||
|
|||||||
3
gradlew.bat
vendored
3
gradlew.bat
vendored
@ -70,10 +70,11 @@ goto fail
|
|||||||
:execute
|
:execute
|
||||||
@rem Setup the command line
|
@rem Setup the command line
|
||||||
|
|
||||||
|
set CLASSPATH=
|
||||||
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
@rem Execute Gradle
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
||||||
|
|
||||||
:end
|
:end
|
||||||
@rem End local scope for the variables with windows NT shell
|
@rem End local scope for the variables with windows NT shell
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user