mirror of
https://github.com/JetBrains/intellij-platform-plugin-template.git
synced 2025-12-04 22:01:54 +00:00
Compare commits
55 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
de6b4c8a9d | ||
|
|
450ea7d908 | ||
|
|
f0d63e98b9 | ||
|
|
32ac468019 | ||
|
|
71b7be9e41 | ||
|
|
7888f159fb | ||
|
|
8ca795f3c2 | ||
|
|
44e2024ee6 | ||
|
|
acbc1b8330 | ||
|
|
00e77303eb | ||
|
|
98a0b72b85 | ||
|
|
01b925e38d | ||
|
|
93e835087c | ||
|
|
ae051ed9ae | ||
|
|
ab68cd4615 | ||
|
|
65ba214871 | ||
|
|
8e51372815 | ||
|
|
b75a84f0ed | ||
|
|
dd98301953 | ||
|
|
3dbbc218d0 | ||
|
|
3c9f911ebf | ||
|
|
445723d8f8 | ||
|
|
61febf6edf | ||
|
|
f6ce1eec46 | ||
|
|
9f231df60d | ||
|
|
9d7a764e19 | ||
|
|
d2e9a51d2b | ||
|
|
e4e19c800f | ||
|
|
10173d8a69 | ||
|
|
3a19f3e40f | ||
|
|
58524d5dd4 | ||
|
|
9f9290fdcb | ||
|
|
ebc2f61dfe | ||
|
|
d6e36aaec5 | ||
|
|
43d9fb39b1 | ||
|
|
e0f54377b7 | ||
|
|
b67f51c520 | ||
|
|
d08a8dba31 | ||
|
|
dfe87322e9 | ||
|
|
09bc34b776 | ||
|
|
0271dcb49b | ||
|
|
28451c0c0f | ||
|
|
faaec28ff8 | ||
|
|
cfa997f8d2 | ||
|
|
52eb4c92fb | ||
|
|
02df6e806c | ||
|
|
ce1a11a6b9 | ||
|
|
1e7a9b38cc | ||
|
|
03a31b46c3 | ||
|
|
82c43ec491 | ||
|
|
f67ed11cac | ||
|
|
6583a88033 | ||
|
|
2d9584084c | ||
|
|
cd13a2d1a2 | ||
|
|
f45d97a1e6 |
4
.github/template-cleanup/README.md
vendored
4
.github/template-cleanup/README.md
vendored
@ -28,10 +28,10 @@ To keep everything working, do not remove `<!-- ... -->` sections.
|
||||
## Installation
|
||||
|
||||
- Using the IDE built-in plugin system:
|
||||
|
||||
|
||||
<kbd>Settings/Preferences</kbd> > <kbd>Plugins</kbd> > <kbd>Marketplace</kbd> > <kbd>Search for "%NAME%"</kbd> >
|
||||
<kbd>Install</kbd>
|
||||
|
||||
|
||||
- Using JetBrains Marketplace:
|
||||
|
||||
Go to [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/MARKETPLACE_ID) and install it by clicking the <kbd>Install to ...</kbd> button in case your IDE is running.
|
||||
|
||||
9
.github/template-cleanup/gradle.properties
vendored
9
.github/template-cleanup/gradle.properties
vendored
@ -7,20 +7,21 @@ pluginRepositoryUrl = https://github.com/%REPOSITORY%
|
||||
pluginVersion = 0.0.1
|
||||
|
||||
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
|
||||
pluginSinceBuild = 243
|
||||
pluginSinceBuild = 252
|
||||
|
||||
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension
|
||||
platformType = IC
|
||||
platformVersion = 2024.3.6
|
||||
platformVersion = 2025.2.5
|
||||
|
||||
# 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
|
||||
platformPlugins =
|
||||
# Example: platformBundledPlugins = com.intellij.java
|
||||
platformBundledPlugins =
|
||||
# Example: platformBundledModules = intellij.spellchecker
|
||||
platformBundledModules =
|
||||
|
||||
# Gradle Releases -> https://github.com/gradle/gradle/releases
|
||||
gradleVersion = 9.0.0
|
||||
gradleVersion = 9.2.1
|
||||
|
||||
# Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib
|
||||
kotlin.stdlib.default.dependency = false
|
||||
|
||||
38
.github/workflows/build.yml
vendored
38
.github/workflows/build.yml
vendored
@ -23,7 +23,7 @@ on:
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
# Prepare the environment and build the plugin
|
||||
@ -41,18 +41,18 @@ jobs:
|
||||
|
||||
# Check out the current repository
|
||||
- name: Fetch Sources
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Set up the Java environment for the next steps
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: zulu
|
||||
java-version: 21
|
||||
|
||||
# Setup Gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v5
|
||||
|
||||
# Build plugin
|
||||
- name: Build plugin
|
||||
@ -71,7 +71,7 @@ jobs:
|
||||
|
||||
# Store an already-built plugin as an artifact for downloading
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: ${{ steps.artifact.outputs.filename }}
|
||||
path: ./build/distributions/content/*/*
|
||||
@ -92,18 +92,18 @@ jobs:
|
||||
|
||||
# Check out the current repository
|
||||
- name: Fetch Sources
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Set up the Java environment for the next steps
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: zulu
|
||||
java-version: 21
|
||||
|
||||
# Setup Gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v5
|
||||
with:
|
||||
cache-read-only: true
|
||||
|
||||
@ -114,7 +114,7 @@ jobs:
|
||||
# Collect Tests Result of failed tests
|
||||
- name: Collect Tests Result
|
||||
if: ${{ failure() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: tests-result
|
||||
path: ${{ github.workspace }}/build/reports/tests
|
||||
@ -146,14 +146,14 @@ jobs:
|
||||
|
||||
# Check out the current repository
|
||||
- name: Fetch Sources
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
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
|
||||
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
|
||||
|
||||
# Set up the Java environment for the next steps
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: zulu
|
||||
java-version: 21
|
||||
@ -180,18 +180,18 @@ jobs:
|
||||
|
||||
# Check out the current repository
|
||||
- name: Fetch Sources
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Set up the Java environment for the next steps
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: zulu
|
||||
java-version: 21
|
||||
|
||||
# Setup Gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v5
|
||||
with:
|
||||
cache-read-only: true
|
||||
|
||||
@ -202,7 +202,7 @@ jobs:
|
||||
# Collect Plugin Verifier Result
|
||||
- name: Collect Plugin Verifier Result
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: pluginVerifier-result
|
||||
path: ${{ github.workspace }}/build/reports/pluginVerifier
|
||||
@ -220,7 +220,7 @@ jobs:
|
||||
|
||||
# Check out the current repository
|
||||
- name: Fetch Sources
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Remove old release drafts by using the curl request for the available releases with a draft flag
|
||||
- name: Remove Old Release Drafts
|
||||
@ -239,7 +239,7 @@ jobs:
|
||||
VERSION=$(./gradlew properties --property version --quiet --console=plain | tail -n 1 | cut -f2- -d ' ')
|
||||
RELEASE_NOTE="./build/tmp/release_note.txt"
|
||||
./gradlew getChangelog --unreleased --no-header --quiet --console=plain --output-file=$RELEASE_NOTE
|
||||
|
||||
|
||||
gh release create $VERSION \
|
||||
--draft \
|
||||
--title $VERSION \
|
||||
|
||||
12
.github/workflows/release.yml
vendored
12
.github/workflows/release.yml
vendored
@ -27,20 +27,20 @@ jobs:
|
||||
|
||||
# Check out the current repository
|
||||
- name: Fetch Sources
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ github.event.release.tag_name }}
|
||||
|
||||
# Set up the Java environment for the next steps
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: zulu
|
||||
java-version: 21
|
||||
|
||||
# Setup Gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v5
|
||||
with:
|
||||
cache-read-only: true
|
||||
|
||||
@ -51,9 +51,9 @@ jobs:
|
||||
CHANGELOG: ${{ github.event.release.body }}
|
||||
run: |
|
||||
RELEASE_NOTE="./build/tmp/release_note.txt"
|
||||
mkdir -p "$(dirname "$RELEASE_NOTE")"
|
||||
echo "$CHANGELOG" > $RELEASE_NOTE
|
||||
|
||||
${{ github.event.release.body }}
|
||||
./gradlew patchChangelog --release-note-file=$RELEASE_NOTE
|
||||
|
||||
# Publish the plugin to JetBrains Marketplace
|
||||
@ -73,7 +73,7 @@ jobs:
|
||||
|
||||
# Create a pull request
|
||||
- name: Create Pull Request
|
||||
if: ${{ steps.properties.outputs.changelog != '' }}
|
||||
if: ${{ github.event.release.body != '' }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
@ -87,7 +87,7 @@ jobs:
|
||||
git checkout -b $BRANCH
|
||||
git commit -am "Changelog update - $VERSION"
|
||||
git push --set-upstream origin $BRANCH
|
||||
|
||||
|
||||
gh label create "$LABEL" \
|
||||
--description "Pull requests with release changelog update" \
|
||||
--force \
|
||||
|
||||
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
|
||||
- name: Fetch Sources
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Set up the Java environment for the next steps
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: zulu
|
||||
java-version: 21
|
||||
|
||||
# Setup Gradle
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v5
|
||||
with:
|
||||
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
|
||||
- name: Fetch Sources
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Cleanup project
|
||||
- name: Cleanup
|
||||
|
||||
6
.github/workflows/template-verify.yml
vendored
6
.github/workflows/template-verify.yml
vendored
@ -23,13 +23,13 @@ jobs:
|
||||
|
||||
# Check out the current repository
|
||||
- name: Fetch Sources
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Compare `gradle.properties` with `.github/template-cleanup/gradle.properties`
|
||||
- name: Verify gradle.properties
|
||||
run: |
|
||||
echo "\`\`\`diff" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
|
||||
diff -U 0 \
|
||||
-I '^pluginVersion' \
|
||||
-I '^pluginGroup' \
|
||||
@ -39,5 +39,5 @@ jobs:
|
||||
--label gradle.properties \
|
||||
.github/template-cleanup/gradle.properties gradle.properties \
|
||||
>> $GITHUB_STEP_SUMMARY
|
||||
|
||||
|
||||
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="21" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
|
||||
@ -16,10 +16,10 @@
|
||||
</option>
|
||||
<option name="vmOptions" value="" />
|
||||
</ExternalSystemSettings>
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
</component>
|
||||
48
CHANGELOG.md
48
CHANGELOG.md
@ -4,6 +4,49 @@
|
||||
|
||||
## [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
|
||||
|
||||
- Add `platformBundledModules` to `gradle.properties` along with `bundledModules()` helper to the Gradle build file
|
||||
|
||||
### Changed
|
||||
|
||||
- Dependencies - upgrade `org.jetbrains.intellij.platform` to `2.7.1`
|
||||
|
||||
### Fixed
|
||||
|
||||
- GitHub: Fixed the missing `$RELEASE_NOTE ` parent directory in the Release workflow
|
||||
|
||||
## [2.3.0] - 2025-08-09
|
||||
|
||||
### Added
|
||||
|
||||
- Added `.DS_Store` directory to `.gitignore`
|
||||
@ -834,7 +877,10 @@
|
||||
- GitHub Actions to automate testing and deployment
|
||||
- Kotlin support
|
||||
|
||||
[Unreleased]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.2.0...HEAD
|
||||
[Unreleased]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.4.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.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.0.2]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.0.1...v2.0.2
|
||||
|
||||
37
README.md
37
README.md
@ -1,9 +1,8 @@
|
||||
# IntelliJ Platform Plugin Template
|
||||
|
||||
[][jb:github]
|
||||
[](https://twitter.com/JBPlatform)
|
||||
[](https://x.com/JBPlatform)
|
||||
[][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-light]
|
||||
@ -55,7 +54,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.
|
||||
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, clone repositories, or clearing the history manually.
|
||||
This allows you to create a new repository easily without copying and pasting previous content, cloning 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).
|
||||
|
||||
@ -66,7 +65,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].
|
||||
|
||||
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]
|
||||
|
||||
@ -74,7 +73,7 @@ The next step, after opening your project in IntelliJ IDEA, is to set the proper
|
||||
|
||||
![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.
|
||||
|
||||
> [!NOTE]
|
||||
@ -112,10 +111,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] |
|
||||
| `pluginVersion` | The current version of the plugin in [SemVer][semver] format. |
|
||||
| `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. |
|
||||
| `platformPlugins` | Comma-separated list of dependencies to the plugins from the Plugin Repositories. |
|
||||
| `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. |
|
||||
|
||||
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.
|
||||
@ -196,11 +195,11 @@ It provides general information about the plugin, its dependencies, extensions,
|
||||
<id>org.jetbrains.plugins.template</id>
|
||||
<name>Template</name>
|
||||
<vendor>JetBrains</vendor>
|
||||
|
||||
|
||||
<depends>com.intellij.modules.platform</depends>
|
||||
|
||||
<resource-bundle>messages.MyBundle</resource-bundle>
|
||||
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<toolWindow factoryClass="..." id="..."/>
|
||||
</extensions>
|
||||
@ -268,9 +267,9 @@ The final test report is sent to [CodeCov][codecov] for better results visualiza
|
||||
|
||||
### UI tests
|
||||
|
||||
If your plugin provides complex user interfaces, you should consider covering them with tests and the functionality they utilize.
|
||||
If your plugin provides complex user interfaces, you should consider covering them with tests and the functionality they use.
|
||||
|
||||
[IntelliJ UI Test Robot][gh:intellij-ui-test-robot] allows you to write and execute UI tests within the IntelliJ IDE running instance.
|
||||
[IntelliJ UI Test Robot][gh:intellij-ui-test-robot] allows you to write and execute UI tests within the JetBrains IDE running instance.
|
||||
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.
|
||||
|
||||
@ -325,10 +324,10 @@ Within the default project structure, there is a `.run` directory provided conta
|
||||
|
||||
![Run/Debug configurations][file:run-debug-configurations.png]
|
||||
|
||||
| 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 Tests | Runs [`:test`][gradle:lifecycle-tasks] Gradle task. |
|
||||
| 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 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. |
|
||||
|
||||
> [!NOTE]
|
||||
@ -357,10 +356,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.
|
||||
- [Release](.github/workflows/release.yml)
|
||||
- Triggered on `released` event.
|
||||
- Updates `CHANGELOG.md` file with the content provided with the release note.
|
||||
- Updates `CHANGELOG.md` file with the content provided the release note.
|
||||
- Signs the plugin with a provided certificate before publishing.
|
||||
- Publishes the plugin to JetBrains Marketplace using the provided `PUBLISH_TOKEN`.
|
||||
- Sets publish channel depending on the plugin version, i.e. `1.0.0-beta` -> `beta` channel.
|
||||
- Sets a publication channel depending on the plugin version, i.e. `1.0.0-beta` -> `beta` channel.
|
||||
- Patches the Changelog and commits.
|
||||
- [Run UI Tests](.github/workflows/run-ui-tests.yml)
|
||||
- Triggered manually.
|
||||
@ -398,7 +397,7 @@ All plugins and dependencies used by Gradle are managed with [Gradle version cat
|
||||
> 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].
|
||||
|
||||
@ -444,7 +443,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).
|
||||
|
||||
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 an empty section for the next release so that you can proceed with your development:
|
||||
GitHub Actions will swap it and provide you with an empty section for the next release so that you can proceed with your development:
|
||||
|
||||
```
|
||||
# YourPlugin Changelog
|
||||
@ -522,7 +521,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?
|
||||
|
||||
Since February 2021, GitHub Actions [support the skip CI feature][github-actions-skip-ci].
|
||||
Since February 2021, GitHub Actions [has supported 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.
|
||||
|
||||
### 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/platforms.html#sub:version-catalog
|
||||
// Dependencies are managed with Gradle version catalog - read more: https://docs.gradle.org/current/userguide/version_catalogs.html
|
||||
dependencies {
|
||||
testImplementation(libs.junit)
|
||||
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
|
||||
intellijPlatform {
|
||||
create(providers.gradleProperty("platformType"), providers.gradleProperty("platformVersion"))
|
||||
intellijIdea(providers.gradleProperty("platformVersion"))
|
||||
|
||||
// Plugin Dependencies. Uses `platformBundledPlugins` property from the gradle.properties file for bundled IntelliJ Platform plugins.
|
||||
bundledPlugins(providers.gradleProperty("platformBundledPlugins").map { it.split(',') })
|
||||
@ -44,6 +44,9 @@ dependencies {
|
||||
// Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file for plugin from JetBrains Marketplace.
|
||||
plugins(providers.gradleProperty("platformPlugins").map { it.split(',') })
|
||||
|
||||
// Module Dependencies. Uses `platformBundledModules` property from the gradle.properties file for bundled IntelliJ Platform modules.
|
||||
bundledModules(providers.gradleProperty("platformBundledModules").map { it.split(',') })
|
||||
|
||||
testFramework(TestFrameworkType.Platform)
|
||||
}
|
||||
}
|
||||
@ -95,7 +98,7 @@ intellijPlatform {
|
||||
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
|
||||
// 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
|
||||
// https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html#specifying-a-release-channel
|
||||
channels = providers.gradleProperty("pluginVersion").map { listOf(it.substringAfter('-', "").substringBefore('.').ifEmpty { "default" }) }
|
||||
}
|
||||
|
||||
@ -112,7 +115,7 @@ changelog {
|
||||
repositoryUrl = providers.gradleProperty("pluginRepositoryUrl")
|
||||
}
|
||||
|
||||
// Configure Gradle Kover Plugin - read more: https://github.com/Kotlin/kotlinx-kover#configuration
|
||||
// Configure Gradle Kover Plugin - read more: https://kotlin.github.io/kotlinx-kover/gradle-plugin/#configuration-details
|
||||
kover {
|
||||
reports {
|
||||
total {
|
||||
|
||||
@ -4,23 +4,24 @@ pluginGroup = org.jetbrains.plugins.template
|
||||
pluginName = IntelliJ Platform Plugin Template
|
||||
pluginRepositoryUrl = https://github.com/JetBrains/intellij-platform-plugin-template
|
||||
# SemVer format -> https://semver.org
|
||||
pluginVersion = 2.3.0
|
||||
pluginVersion = 2.4.0
|
||||
|
||||
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
|
||||
pluginSinceBuild = 243
|
||||
pluginSinceBuild = 252
|
||||
|
||||
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension
|
||||
platformType = IC
|
||||
platformVersion = 2024.3.6
|
||||
platformVersion = 2025.2.5
|
||||
|
||||
# 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
|
||||
platformPlugins =
|
||||
# Example: platformBundledPlugins = com.intellij.java
|
||||
platformBundledPlugins =
|
||||
# Example: platformBundledModules = intellij.spellchecker
|
||||
platformBundledModules =
|
||||
|
||||
# Gradle Releases -> https://github.com/gradle/gradle/releases
|
||||
gradleVersion = 9.0.0
|
||||
gradleVersion = 9.2.1
|
||||
|
||||
# Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib
|
||||
kotlin.stdlib.default.dependency = false
|
||||
|
||||
@ -4,11 +4,11 @@ junit = "4.13.2"
|
||||
opentest4j = "1.3.0"
|
||||
|
||||
# plugins
|
||||
changelog = "2.4.0"
|
||||
intelliJPlatform = "2.7.0"
|
||||
kotlin = "2.2.0"
|
||||
kover = "0.9.1"
|
||||
qodana = "2025.1.1"
|
||||
changelog = "2.5.0"
|
||||
intelliJPlatform = "2.10.5"
|
||||
kotlin = "2.2.21"
|
||||
kover = "0.9.3"
|
||||
qodana = "2025.2.2"
|
||||
|
||||
[libraries]
|
||||
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
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
3
gradlew
vendored
3
gradlew
vendored
@ -114,7 +114,6 @@ case "$( uname )" in #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH="\\\"\\\""
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
@ -172,7 +171,6 @@ fi
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
@ -212,7 +210,6 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-classpath "$CLASSPATH" \
|
||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||
"$@"
|
||||
|
||||
|
||||
3
gradlew.bat
vendored
3
gradlew.bat
vendored
@ -70,11 +70,10 @@ goto fail
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%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" %*
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
|
||||
Loading…
Reference in New Issue
Block a user