Compare commits
144 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
98cba4ff31 | ||
|
f78904a98d | ||
|
54903fe539 | ||
|
d0b82ae02c | ||
|
aeb824be14 | ||
|
1cbcc2c3cd | ||
|
e6049b2283 | ||
|
66a44703e0 | ||
|
ff48dc7555 | ||
|
b83e18d0ad | ||
|
023aa9e243 | ||
|
4cf4ef8a95 | ||
|
038d00b51a | ||
|
f8a064fa9e | ||
|
d9c5d5129d | ||
|
8e0270c38d | ||
|
305bfc81a1 | ||
|
6676260076 | ||
|
ad24ddb048 | ||
|
d7cd4f603f | ||
|
d3388de4a2 | ||
|
1ad329de91 | ||
|
777fd2ad9c | ||
|
6d938b80ba | ||
|
3c399f798b | ||
|
b0c4bb5b62 | ||
|
b9d337eb79 | ||
|
cec964e1d8 | ||
|
01efb95680 | ||
|
87e97653fe | ||
|
ef162c2a10 | ||
|
3506b32eb4 | ||
|
b947028171 | ||
|
d320c4195c | ||
|
8c3191eec0 | ||
|
dc3507cc71 | ||
|
d4550874ba | ||
|
f54d138653 | ||
|
7fae82c680 | ||
|
f43cbe52ac | ||
|
14d79202e4 | ||
|
fefb39725a | ||
|
4bd83f6553 | ||
|
1d73667d0c | ||
|
9538af35ff | ||
|
4a6cef52ae | ||
|
381a2347f6 | ||
|
7f69374026 | ||
|
a4f1c21295 | ||
|
292c8e0ed6 | ||
|
e5e5af44a3 | ||
|
fa099ff446 | ||
|
0474c03f14 | ||
|
01234410a3 | ||
|
0fe4d27ea9 | ||
|
f3bc69268f | ||
|
a9e9c97c41 | ||
|
2340290cb2 | ||
|
a2e31af6e2 | ||
|
a362a06048 | ||
|
a05cf9961b | ||
|
79bea43e25 | ||
|
af9a2b4c33 | ||
|
0a59020482 | ||
|
0999d97fe5 | ||
|
b4ff5e14a9 | ||
|
51cac269b1 | ||
|
767bea0f5a | ||
|
8c641e4966 | ||
|
f83b2a7dd4 | ||
|
22f70af698 | ||
|
87a8cd9930 | ||
|
7202bfac40 | ||
|
240e06cc53 | ||
|
38a12bf912 | ||
|
a53b879b23 | ||
|
bbaabfe294 | ||
|
da699e9dbf | ||
|
aca1a500bc | ||
|
c7799095f6 | ||
|
be87c6b2b2 | ||
|
a746a36063 | ||
|
2fd14cda2e | ||
|
a23f859ba7 | ||
|
16168ba7e8 | ||
|
47b2d17650 | ||
|
62532623bc | ||
|
04e1e51d36 | ||
|
8abc7ff746 | ||
|
8313d6c9f3 | ||
|
04bf40e9f0 | ||
|
d62ac0c227 | ||
|
c46eed131b | ||
|
07ed8ab11e | ||
|
ff98e23df8 | ||
|
3714732fb1 | ||
|
9575f46f37 | ||
|
75b18806fa | ||
|
9ca3701928 | ||
|
a0df58f373 | ||
|
9726f523c5 | ||
|
dc158f24c4 | ||
|
22159f0b6f | ||
|
254cd19ae8 | ||
|
ae35708299 | ||
|
3715e34871 | ||
|
81206eb0c2 | ||
|
db8f493cc1 | ||
|
fdf009d309 | ||
|
164d4ead5b | ||
|
de5d2e9901 | ||
|
e6736aee12 | ||
|
b7f5f2afcd | ||
|
2504c560d8 | ||
|
8ddc338d23 | ||
|
281eacf728 | ||
|
ac57f20bb3 | ||
|
fc1085cbd3 | ||
|
2f824e0584 | ||
|
b5aaa3ff5e | ||
|
5a275e45d7 | ||
|
c25c79d3ed | ||
|
427dc4ea49 | ||
|
9cb309ff88 | ||
|
7c0690cbec | ||
|
9a177f918b | ||
|
b9b2639dca | ||
|
a51bde09cf | ||
|
d3258cea7f | ||
|
76d15e31e8 | ||
|
88d26a000f | ||
|
adad639bcc | ||
|
367a43582f | ||
|
de86d6b34b | ||
|
9f4051c3d8 | ||
|
3d18989b53 | ||
|
91c3282139 | ||
|
0471a99799 | ||
|
b3cb370194 | ||
|
fc3f3f4c9f | ||
|
0186f69508 | ||
|
8d42508c6c | ||
|
521bc6519a | ||
|
79e96a1ffc |
BIN
.github/readme/draft-release.png
vendored
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 64 KiB |
BIN
.github/readme/run-debug-configurations.png
vendored
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 87 KiB |
BIN
.github/readme/run-logs.png
vendored
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 195 KiB |
BIN
.github/readme/settings-secrets.png
vendored
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 345 KiB |
BIN
.github/readme/use-this-template.png
vendored
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 234 KiB |
15
.github/template-cleanup/README.md
vendored
@ -1,17 +1,17 @@
|
|||||||
# %NAME%
|
# %NAME%
|
||||||
|
|
||||||

|

|
||||||
[](https://plugins.jetbrains.com/plugin/PLUGIN_ID)
|
[](https://plugins.jetbrains.com/plugin/MARKETPLACE_ID)
|
||||||
[](https://plugins.jetbrains.com/plugin/PLUGIN_ID)
|
[](https://plugins.jetbrains.com/plugin/MARKETPLACE_ID)
|
||||||
|
|
||||||
## Template ToDo list
|
## Template ToDo list
|
||||||
- [x] Create a new [IntelliJ Platform Plugin Template][template] project.
|
- [x] Create a new [IntelliJ Platform Plugin Template][template] project.
|
||||||
- [ ] Get familiar with the [template documentation][template].
|
- [ ] Get familiar with the [template documentation][template].
|
||||||
- [ ] Adjust the [pluginGroup](./gradle.properties), [plugin ID](./src/main/resources/META-INF/plugin.xml) and [sources package](./src/main/kotlin).
|
- [ ] Adjust the [pluginGroup](./gradle.properties) and [pluginName](./gradle.properties), as well as the [id](./src/main/resources/META-INF/plugin.xml) and [sources package](./src/main/kotlin).
|
||||||
- [ ] Adjust the plugin description in `README` (see [Tips][docs:plugin-description])
|
- [ ] Adjust the plugin description in `README` (see [Tips][docs:plugin-description])
|
||||||
- [ ] Review the [Legal Agreements](https://plugins.jetbrains.com/docs/marketplace/legal-agreements.html?from=IJPluginTemplate).
|
- [ ] Review the [Legal Agreements](https://plugins.jetbrains.com/docs/marketplace/legal-agreements.html?from=IJPluginTemplate).
|
||||||
- [ ] [Publish a plugin manually](https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html?from=IJPluginTemplate) for the first time.
|
- [ ] [Publish a plugin manually](https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html?from=IJPluginTemplate) for the first time.
|
||||||
- [ ] Set the `PLUGIN_ID` in the above README badges.
|
- [ ] Set the `MARKETPLACE_ID` in the above README badges. You can obtain it once the plugin is published to JetBrains Marketplace.
|
||||||
- [ ] Set the [Plugin Signing](https://plugins.jetbrains.com/docs/intellij/plugin-signing.html?from=IJPluginTemplate) related [secrets](https://github.com/JetBrains/intellij-platform-plugin-template#environment-variables).
|
- [ ] Set the [Plugin Signing](https://plugins.jetbrains.com/docs/intellij/plugin-signing.html?from=IJPluginTemplate) related [secrets](https://github.com/JetBrains/intellij-platform-plugin-template#environment-variables).
|
||||||
- [ ] Set the [Deployment Token](https://plugins.jetbrains.com/docs/marketplace/plugin-upload.html?from=IJPluginTemplate).
|
- [ ] Set the [Deployment Token](https://plugins.jetbrains.com/docs/marketplace/plugin-upload.html?from=IJPluginTemplate).
|
||||||
- [ ] Click the <kbd>Watch</kbd> button on the top of the [IntelliJ Platform Plugin Template][template] to be notified about releases containing new features and fixes.
|
- [ ] Click the <kbd>Watch</kbd> button on the top of the [IntelliJ Platform Plugin Template][template] to be notified about releases containing new features and fixes.
|
||||||
@ -31,6 +31,13 @@ To keep everything working, do not remove `<!-- ... -->` sections.
|
|||||||
<kbd>Settings/Preferences</kbd> > <kbd>Plugins</kbd> > <kbd>Marketplace</kbd> > <kbd>Search for "%NAME%"</kbd> >
|
<kbd>Settings/Preferences</kbd> > <kbd>Plugins</kbd> > <kbd>Marketplace</kbd> > <kbd>Search for "%NAME%"</kbd> >
|
||||||
<kbd>Install</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.
|
||||||
|
|
||||||
|
You can also download the [latest release](https://plugins.jetbrains.com/plugin/MARKETPLACE_ID/versions) from JetBrains Marketplace and install it manually using
|
||||||
|
<kbd>Settings/Preferences</kbd> > <kbd>Plugins</kbd> > <kbd>⚙️</kbd> > <kbd>Install plugin from disk...</kbd>
|
||||||
|
|
||||||
- Manually:
|
- Manually:
|
||||||
|
|
||||||
Download the [latest release](https://github.com/%REPOSITORY%/releases/latest) and install it manually using
|
Download the [latest release](https://github.com/%REPOSITORY%/releases/latest) and install it manually using
|
||||||
|
15
.github/template-cleanup/gradle.properties
vendored
@ -7,19 +7,21 @@ 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 = 223
|
pluginSinceBuild = 233
|
||||||
pluginUntilBuild = 233.*
|
pluginUntilBuild = 242.*
|
||||||
|
|
||||||
# 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
|
||||||
platformType = IC
|
platformType = IC
|
||||||
platformVersion = 2022.3.3
|
platformVersion = 2023.3.8
|
||||||
|
|
||||||
# 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.intellij.java, com.jetbrains.php:203.4449.22
|
# Example: platformPlugins = com.jetbrains.php:203.4449.22, org.intellij.scala:2023.3.27@EAP
|
||||||
platformPlugins =
|
platformPlugins =
|
||||||
|
# Example: platformBundledPlugins = com.intellij.java
|
||||||
|
platformBundledPlugins =
|
||||||
|
|
||||||
# Gradle Releases -> https://github.com/gradle/gradle/releases
|
# Gradle Releases -> https://github.com/gradle/gradle/releases
|
||||||
gradleVersion = 8.5
|
gradleVersion = 8.10.2
|
||||||
|
|
||||||
# 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
|
||||||
@ -29,6 +31,3 @@ org.gradle.configuration-cache = true
|
|||||||
|
|
||||||
# Enable Gradle Build Cache -> https://docs.gradle.org/current/userguide/build_cache.html
|
# Enable Gradle Build Cache -> https://docs.gradle.org/current/userguide/build_cache.html
|
||||||
org.gradle.caching = true
|
org.gradle.caching = true
|
||||||
|
|
||||||
# Enable Gradle Kotlin DSL Lazy Property Assignment -> https://docs.gradle.org/current/userguide/kotlin_dsl.html#kotdsl:assignment
|
|
||||||
systemProp.org.gradle.unsafe.kotlin.assignment = true
|
|
||||||
|
2
.github/template-cleanup/settings.gradle.kts
vendored
@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id("org.gradle.toolchains.foojay-resolver-convention") version "0.7.0"
|
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
rootProject.name = "%NAME%"
|
rootProject.name = "%NAME%"
|
||||||
|
56
.github/workflows/build.yml
vendored
@ -20,6 +20,10 @@ on:
|
|||||||
# Trigger the workflow on any pull request
|
# Trigger the workflow on any pull request
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
# Prepare environment and build the plugin
|
# Prepare environment and build the plugin
|
||||||
@ -32,13 +36,13 @@ jobs:
|
|||||||
pluginVerifierHomeDir: ${{ steps.properties.outputs.pluginVerifierHomeDir }}
|
pluginVerifierHomeDir: ${{ steps.properties.outputs.pluginVerifierHomeDir }}
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
# Check out current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Validate wrapper
|
# Validate wrapper
|
||||||
- name: Gradle Wrapper Validation
|
- name: Gradle Wrapper Validation
|
||||||
uses: gradle/wrapper-validation-action@v1.1.0
|
uses: gradle/actions/wrapper-validation@v3
|
||||||
|
|
||||||
# Set up Java environment for the next steps
|
# Set up Java environment for the next steps
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
@ -49,9 +53,7 @@ jobs:
|
|||||||
|
|
||||||
# Setup Gradle
|
# Setup Gradle
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/actions/setup-gradle@v4
|
||||||
with:
|
|
||||||
gradle-home-cache-cleanup: true
|
|
||||||
|
|
||||||
# Set environment variables
|
# Set environment variables
|
||||||
- name: Export Properties
|
- name: Export Properties
|
||||||
@ -69,8 +71,6 @@ jobs:
|
|||||||
echo "$CHANGELOG" >> $GITHUB_OUTPUT
|
echo "$CHANGELOG" >> $GITHUB_OUTPUT
|
||||||
echo "EOF" >> $GITHUB_OUTPUT
|
echo "EOF" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
./gradlew listProductsReleases # prepare list of IDEs for Plugin Verifier
|
|
||||||
|
|
||||||
# Build plugin
|
# Build plugin
|
||||||
- name: Build plugin
|
- name: Build plugin
|
||||||
run: ./gradlew buildPlugin
|
run: ./gradlew buildPlugin
|
||||||
@ -88,7 +88,7 @@ jobs:
|
|||||||
|
|
||||||
# Store already-built plugin as an artifact for downloading
|
# Store already-built plugin as an artifact for downloading
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v3
|
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/*/*
|
||||||
@ -100,7 +100,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
# Check out current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
@ -113,9 +113,7 @@ jobs:
|
|||||||
|
|
||||||
# Setup Gradle
|
# Setup Gradle
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/actions/setup-gradle@v4
|
||||||
with:
|
|
||||||
gradle-home-cache-cleanup: true
|
|
||||||
|
|
||||||
# Run tests
|
# Run tests
|
||||||
- name: Run Tests
|
- name: Run Tests
|
||||||
@ -124,14 +122,14 @@ 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@v3
|
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
|
||||||
|
|
||||||
# Upload the Kover report to CodeCov
|
# Upload the Kover report to CodeCov
|
||||||
- name: Upload Code Coverage Report
|
- name: Upload Code Coverage Report
|
||||||
uses: codecov/codecov-action@v3
|
uses: codecov/codecov-action@v4
|
||||||
with:
|
with:
|
||||||
files: ${{ github.workspace }}/build/reports/kover/report.xml
|
files: ${{ github.workspace }}/build/reports/kover/report.xml
|
||||||
|
|
||||||
@ -153,9 +151,12 @@ jobs:
|
|||||||
tool-cache: false
|
tool-cache: false
|
||||||
large-packages: false
|
large-packages: false
|
||||||
|
|
||||||
# Check out current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
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
|
||||||
|
|
||||||
# Set up Java environment for the next steps
|
# Set up Java environment for the next steps
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
@ -166,7 +167,7 @@ jobs:
|
|||||||
|
|
||||||
# Run Qodana inspections
|
# Run Qodana inspections
|
||||||
- name: Qodana - Code Inspection
|
- name: Qodana - Code Inspection
|
||||||
uses: JetBrains/qodana-action@v2023.2.8
|
uses: JetBrains/qodana-action@v2024.2
|
||||||
with:
|
with:
|
||||||
cache-default-branch-only: true
|
cache-default-branch-only: true
|
||||||
|
|
||||||
@ -184,7 +185,7 @@ jobs:
|
|||||||
tool-cache: false
|
tool-cache: false
|
||||||
large-packages: false
|
large-packages: false
|
||||||
|
|
||||||
# Check out current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
@ -197,25 +198,23 @@ jobs:
|
|||||||
|
|
||||||
# Setup Gradle
|
# Setup Gradle
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/actions/setup-gradle@v4
|
||||||
with:
|
|
||||||
gradle-home-cache-cleanup: true
|
|
||||||
|
|
||||||
# Cache Plugin Verifier IDEs
|
# Cache Plugin Verifier IDEs
|
||||||
- name: Setup Plugin Verifier IDEs Cache
|
- name: Setup Plugin Verifier IDEs Cache
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: ${{ needs.build.outputs.pluginVerifierHomeDir }}/ides
|
path: ${{ needs.build.outputs.pluginVerifierHomeDir }}/ides
|
||||||
key: plugin-verifier-${{ hashFiles('build/listProductsReleases.txt') }}
|
key: plugin-verifier-${{ hashFiles('build/listProductsReleases.txt') }}
|
||||||
|
|
||||||
# Run Verify Plugin task and IntelliJ Plugin Verifier tool
|
# Run Verify Plugin task and IntelliJ Plugin Verifier tool
|
||||||
- name: Run Plugin Verification tasks
|
- name: Run Plugin Verification tasks
|
||||||
run: ./gradlew runPluginVerifier -Dplugin.verifier.home.dir=${{ needs.build.outputs.pluginVerifierHomeDir }}
|
run: ./gradlew verifyPlugin -Dplugin.verifier.home.dir=${{ needs.build.outputs.pluginVerifierHomeDir }}
|
||||||
|
|
||||||
# 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@v3
|
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
|
||||||
@ -231,17 +230,10 @@ jobs:
|
|||||||
contents: write
|
contents: write
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
# Check out current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Set up Java environment for the next steps
|
|
||||||
- name: Setup Java
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: zulu
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
# 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
|
||||||
env:
|
env:
|
||||||
@ -256,7 +248,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
gh release create v${{ needs.build.outputs.version }} \
|
gh release create "v${{ needs.build.outputs.version }}" \
|
||||||
--draft \
|
--draft \
|
||||||
--title "v${{ needs.build.outputs.version }}" \
|
--title "v${{ needs.build.outputs.version }}" \
|
||||||
--notes "$(cat << 'EOM'
|
--notes "$(cat << 'EOM'
|
||||||
|
8
.github/workflows/release.yml
vendored
@ -18,7 +18,7 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
# Check out current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
@ -33,9 +33,7 @@ jobs:
|
|||||||
|
|
||||||
# Setup Gradle
|
# Setup Gradle
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/actions/setup-gradle@v4
|
||||||
with:
|
|
||||||
gradle-home-cache-cleanup: true
|
|
||||||
|
|
||||||
# Set environment variables
|
# Set environment variables
|
||||||
- name: Export Properties
|
- name: Export Properties
|
||||||
@ -51,7 +49,7 @@ jobs:
|
|||||||
echo "$CHANGELOG" >> $GITHUB_OUTPUT
|
echo "$CHANGELOG" >> $GITHUB_OUTPUT
|
||||||
echo "EOF" >> $GITHUB_OUTPUT
|
echo "EOF" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
# Update Unreleased section with the current release note
|
# Update the Unreleased section with the current release note
|
||||||
- name: Patch Changelog
|
- name: Patch Changelog
|
||||||
if: ${{ steps.properties.outputs.changelog != '' }}
|
if: ${{ steps.properties.outputs.changelog != '' }}
|
||||||
env:
|
env:
|
||||||
|
8
.github/workflows/run-ui-tests.yml
vendored
@ -31,7 +31,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
# Check out current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
@ -44,9 +44,7 @@ jobs:
|
|||||||
|
|
||||||
# Setup Gradle
|
# Setup Gradle
|
||||||
- name: Setup Gradle
|
- name: Setup Gradle
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/actions/setup-gradle@v4
|
||||||
with:
|
|
||||||
gradle-home-cache-cleanup: true
|
|
||||||
|
|
||||||
# Run IDEA prepared for UI testing
|
# Run IDEA prepared for UI testing
|
||||||
- name: Run IDE
|
- name: Run IDE
|
||||||
@ -54,7 +52,7 @@ jobs:
|
|||||||
|
|
||||||
# Wait for IDEA to be started
|
# Wait for IDEA to be started
|
||||||
- name: Health Check
|
- name: Health Check
|
||||||
uses: jtalk/url-health-check-action@v3
|
uses: jtalk/url-health-check-action@v4
|
||||||
with:
|
with:
|
||||||
url: http://127.0.0.1:8082
|
url: http://127.0.0.1:8082
|
||||||
max-attempts: 15
|
max-attempts: 15
|
||||||
|
5
.github/workflows/template-cleanup.yml
vendored
@ -17,7 +17,7 @@ jobs:
|
|||||||
contents: write
|
contents: write
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
# Check out current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ jobs:
|
|||||||
|
|
||||||
# Replace template package name in project files with $GROUP
|
# Replace template package name in project files with $GROUP
|
||||||
find src -type f -exec sed -i "s/org.jetbrains.plugins.template/$GROUP/g" {} +
|
find src -type f -exec sed -i "s/org.jetbrains.plugins.template/$GROUP/g" {} +
|
||||||
find src -type f -exec sed -i "s/IntelliJ Platform Plugin/$NAME/g" {} +
|
find src -type f -exec sed -i "s/IntelliJ Platform Plugin Template/$NAME/g" {} +
|
||||||
find src -type f -exec sed -i "s/JetBrains/$ACTOR/g" {} +
|
find src -type f -exec sed -i "s/JetBrains/$ACTOR/g" {} +
|
||||||
|
|
||||||
# Move content
|
# Move content
|
||||||
@ -61,7 +61,6 @@ jobs:
|
|||||||
.idea/icon.png \
|
.idea/icon.png \
|
||||||
src/main/kotlin/org \
|
src/main/kotlin/org \
|
||||||
src/test/kotlin/org \
|
src/test/kotlin/org \
|
||||||
src/main/resources/META-INF/pluginIcon.svg \
|
|
||||||
CODE_OF_CONDUCT.md \
|
CODE_OF_CONDUCT.md \
|
||||||
LICENSE
|
LICENSE
|
||||||
|
|
||||||
|
2
.github/workflows/template-verify.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
|||||||
changelog: ${{ steps.properties.outputs.changelog }}
|
changelog: ${{ steps.properties.outputs.changelog }}
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
# Check out current repository
|
# Check out the current repository
|
||||||
- name: Fetch Sources
|
- name: Fetch Sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
1
.gitignore
vendored
@ -1,4 +1,5 @@
|
|||||||
.gradle
|
.gradle
|
||||||
.idea
|
.idea
|
||||||
|
.intellijPlatform
|
||||||
.qodana
|
.qodana
|
||||||
build
|
build
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="Run IDE for UI Tests" type="GradleRunConfiguration" factoryName="Gradle">
|
|
||||||
<log_file alias="idea.log" path="$PROJECT_DIR$/build/idea-sandbox/system/log/idea.log" />
|
|
||||||
<ExternalSystemSettings>
|
|
||||||
<option name="executionName" />
|
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
|
||||||
<option name="externalSystemIdString" value="GRADLE" />
|
|
||||||
<option name="scriptParameters" value="" />
|
|
||||||
<option name="taskDescriptions">
|
|
||||||
<list />
|
|
||||||
</option>
|
|
||||||
<option name="taskNames">
|
|
||||||
<list>
|
|
||||||
<option value="runIdeForUiTests" />
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
<option name="vmOptions" />
|
|
||||||
</ExternalSystemSettings>
|
|
||||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
|
||||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
|
||||||
<DebugAllEnabled>false</DebugAllEnabled>
|
|
||||||
<RunAsTest>false</RunAsTest>
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
@ -1,6 +1,6 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="Run Plugin" type="GradleRunConfiguration" factoryName="Gradle">
|
<configuration default="false" name="Run Plugin" type="GradleRunConfiguration" factoryName="Gradle">
|
||||||
<log_file alias="idea.log" path="$PROJECT_DIR$/build/idea-sandbox/system/log/idea.log" />
|
<log_file alias="IDE logs" path="$PROJECT_DIR$/build/idea-sandbox/*/log/idea.log" show_all="true" />
|
||||||
<ExternalSystemSettings>
|
<ExternalSystemSettings>
|
||||||
<option name="executionName" />
|
<option name="executionName" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
@ -19,6 +19,7 @@
|
|||||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||||
<DebugAllEnabled>false</DebugAllEnabled>
|
<DebugAllEnabled>false</DebugAllEnabled>
|
||||||
|
<RunAsTest>false</RunAsTest>
|
||||||
<method v="2" />
|
<method v="2" />
|
||||||
</configuration>
|
</configuration>
|
||||||
</component>
|
</component>
|
@ -1,30 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="Run Qodana" type="GradleRunConfiguration" factoryName="Gradle">
|
|
||||||
<ExternalSystemSettings>
|
|
||||||
<option name="env">
|
|
||||||
<map>
|
|
||||||
<entry key="QODANA_SHOW_REPORT" value="true" />
|
|
||||||
</map>
|
|
||||||
</option>
|
|
||||||
<option name="executionName" />
|
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
|
||||||
<option name="externalSystemIdString" value="GRADLE" />
|
|
||||||
<option name="scriptParameters" value="" />
|
|
||||||
<option name="taskDescriptions">
|
|
||||||
<list />
|
|
||||||
</option>
|
|
||||||
<option name="taskNames">
|
|
||||||
<list>
|
|
||||||
<option value="cleanInspections" />
|
|
||||||
<option value="runInspections" />
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
<option name="vmOptions" />
|
|
||||||
</ExternalSystemSettings>
|
|
||||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
|
||||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
|
||||||
<DebugAllEnabled>false</DebugAllEnabled>
|
|
||||||
<RunAsTest>false</RunAsTest>
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
@ -19,6 +19,7 @@
|
|||||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||||
<DebugAllEnabled>false</DebugAllEnabled>
|
<DebugAllEnabled>false</DebugAllEnabled>
|
||||||
|
<RunAsTest>true</RunAsTest>
|
||||||
<method v="2" />
|
<method v="2" />
|
||||||
</configuration>
|
</configuration>
|
||||||
</component>
|
</component>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
</option>
|
</option>
|
||||||
<option name="taskNames">
|
<option name="taskNames">
|
||||||
<list>
|
<list>
|
||||||
<option value="runPluginVerifier" />
|
<option value="verifyPlugin" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
<option name="vmOptions" value="" />
|
<option name="vmOptions" value="" />
|
||||||
@ -19,8 +19,7 @@
|
|||||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||||
<DebugAllEnabled>false</DebugAllEnabled>
|
<DebugAllEnabled>false</DebugAllEnabled>
|
||||||
<method v="2">
|
<RunAsTest>false</RunAsTest>
|
||||||
<option name="Gradle.BeforeRunTask" enabled="true" tasks="clean" externalProjectPath="$PROJECT_DIR$" vmOptions="" scriptParameters="" />
|
<method v="2" />
|
||||||
</method>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
</component>
|
</component>
|
137
CHANGELOG.md
@ -6,6 +6,129 @@
|
|||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
- Upgrade Gradle Wrapper to `8.10.2`
|
||||||
|
- Update `platformVersion` to `2023.3.8`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.intellij.platform` to `2.1.0`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.qodana` to `2024.2.3`
|
||||||
|
- Dependencies (GitHub Actions) - upgrade `gradle/actions/setup-gradle` to `v4`
|
||||||
|
- Add back the `org.gradle.toolchains.foojay-resolver-convention` Gradle settings plugin
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed _Run Plugin_ run configuration logs location
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- Removed _Run Qodana_ and _Run UI for UI Tests_ run configurations
|
||||||
|
|
||||||
|
## [2.0.1] - 2024-08-09
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Update `platformVersion` to `2023.3.7`
|
||||||
|
- Change since/until build to `233-242.*` (2023.3-2024.2.*)
|
||||||
|
- Cleanup registering the `runIdeForUiTests` task
|
||||||
|
- Dependencies - upgrade `org.jetbrains.intellij.platform` to `2.0.1`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.9.25`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.kotlinx.kover` to `0.8.3`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.qodana` to `2024.1.9`
|
||||||
|
|
||||||
|
## [2.0.0] - 2024-07-30
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Migrate to [IntelliJ Platform Gradle Plugin 2.0](https://blog.jetbrains.com/platform/2024/07/intellij-platform-gradle-plugin-2-0/).
|
||||||
|
|
||||||
|
## [1.14.2] - 2024-07-12
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Upgrade Gradle Wrapper to `8.9`
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- Remove default plugin icon (`pluginIcon.svg`)
|
||||||
|
|
||||||
|
## [1.14.1] - 2024-06-19
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Update `platformVersion` to `2023.2.7`
|
||||||
|
- Upgrade Gradle Wrapper to `8.8`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.intellij` to `1.17.4`
|
||||||
|
- Dependencies - downgrade `org.jetbrains.kotlin.jvm` to `1.9.24`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.kotlinx.kover` to `0.8.1`
|
||||||
|
|
||||||
|
## [1.14.0] - 2024-05-30
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Update `platformVersion` to `2023.2.6`
|
||||||
|
- Change since/until build to `232-242.*` (2023.2-2024.2.*)
|
||||||
|
- Upgrade Gradle Wrapper to `8.7`
|
||||||
|
- Update Kover configuration
|
||||||
|
- Replace `org.jetbrains:annotations` library with an `com.example:exampleLibrary` placeholder
|
||||||
|
- Dependencies - upgrade `org.jetbrains.intellij` to `1.17.3`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `2.0.0`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.kotlinx.kover` to `0.8.0`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.qodana` to `2024.1.5`
|
||||||
|
- Dependencies (GitHub Actions) - replace `gradle/wrapper-validation-action@v2` with `gradle/actions/wrapper-validation@v3`
|
||||||
|
- Dependencies (GitHub Actions) - upgrade `JetBrains/qodana-action` to `v2024.1.5`
|
||||||
|
- Dependencies (GitHub Actions) - upgrade `jtalk/url-health-check-action` to `v4`
|
||||||
|
|
||||||
|
## [1.13.0] - 2024-03-11
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.9.23`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.kotlinx.kover` to `0.7.6`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.qodana` to `2023.3.2`
|
||||||
|
- Dependencies (GitHub Actions) - upgrade `actions/upload-artifact` to `4`
|
||||||
|
- Dependencies (GitHub Actions) - upgrade `codecov/codecov-action` to `4`
|
||||||
|
- Dependencies (GitHub Actions) - upgrade `gradle/wrapper-validation-action` to `2`
|
||||||
|
- Dependencies (GitHub Actions) - upgrade `actions/cache` to `4`
|
||||||
|
- Gradle - upgrade `org.gradle.toolchains.foojay-resolver-convention` to `0.8.0`
|
||||||
|
- Gradle - cleanup the `jvmToolchain` setup
|
||||||
|
- Run Configurations - `Run Qodana` runs the `qodanaScan` Gradle task
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed calculation of the plugin publication channel
|
||||||
|
- Run Configurations - `Run Tests` uses the `RunAsTest` IDE feature
|
||||||
|
- Replace the whole `IntelliJ Platform Plugin Template` with the new project name when running the GitHub Actions Cleanup workflow
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- GitHub Actions: Remove the `Setup Java` step from the `releaseDraft` build step
|
||||||
|
- Gradle - Removed Qodana Gradle Plugin configuration to rely on defaults
|
||||||
|
|
||||||
|
## [1.12.0] - 2024-02-20
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- GitHub Actions: Reduce the number of concurrent builds
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Change since/until build to `223-241.*` (2022.3-2024.1.*)
|
||||||
|
- Upgrade Gradle Wrapper to `8.6`
|
||||||
|
- Dependencies - upgrade `org.jetbrains.intellij` to `1.17.2`
|
||||||
|
- Dependencies (GitHub Actions) - upgrade `gradle/gradle-build-action@v2` to `gradle/actions/setup-gradle@v3`
|
||||||
|
- Dependencies (GitHub Actions) - upgrade `JetBrains/qodana-action` to `v2023.3.1`
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Adjusted obtaining the value for `publishPlugin.channels` property in `build.gradle.kts`
|
||||||
|
- Fixed bash variable access in the Create Release Draft step.
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- Remove Gradle Kotlin DSL Lazy Property Assignment because it's default now
|
||||||
|
|
||||||
|
## [1.11.3] - 2023-12-01
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
- Upgrade Gradle Wrapper to `8.5`
|
- Upgrade Gradle Wrapper to `8.5`
|
||||||
- Dependencies - upgrade `org.jetbrains.intellij` to `1.16.1`
|
- Dependencies - upgrade `org.jetbrains.intellij` to `1.16.1`
|
||||||
- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.9.21`
|
- Dependencies - upgrade `org.jetbrains.kotlin.jvm` to `1.9.21`
|
||||||
@ -646,7 +769,15 @@
|
|||||||
- 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/v1.11.2...HEAD
|
[Unreleased]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.0.1...HEAD
|
||||||
|
[2.0.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v2.0.0...v2.0.1
|
||||||
|
[2.0.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.14.2...v2.0.0
|
||||||
|
[1.14.2]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.14.1...v1.14.2
|
||||||
|
[1.14.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.14.0...v1.14.1
|
||||||
|
[1.14.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.13.0...v1.14.0
|
||||||
|
[1.13.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.12.0...v1.13.0
|
||||||
|
[1.12.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.11.3...v1.12.0
|
||||||
|
[1.11.3]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.11.2...v1.11.3
|
||||||
[1.11.2]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.11.1...v1.11.2
|
[1.11.2]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.11.1...v1.11.2
|
||||||
[1.11.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.11.0...v1.11.1
|
[1.11.1]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.11.0...v1.11.1
|
||||||
[1.11.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.10.0...v1.11.0
|
[1.11.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v1.10.0...v1.11.0
|
||||||
@ -682,5 +813,5 @@
|
|||||||
[0.3.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.2.0...v0.3.0
|
[0.3.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.2.0...v0.3.0
|
||||||
[0.2.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.1.0...v0.2.0
|
[0.2.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.1.0...v0.2.0
|
||||||
[0.1.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.0.2...v0.1.0
|
[0.1.0]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.0.2...v0.1.0
|
||||||
[0.0.2]: https://github.com/JetBrains/intellij-platform-plugin-template/commits/v0.0.2
|
[0.0.2]: https://github.com/JetBrains/intellij-platform-plugin-template/compare/v0.0.1...v0.0.2
|
||||||
[0.0.1]: https://github.com/JetBrains/intellij-platform-plugin-template/commits
|
[0.0.1]: https://github.com/JetBrains/intellij-platform-plugin-template/commits/v0.0.1
|
||||||
|
138
README.md
@ -8,8 +8,7 @@
|
|||||||
![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]
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
|
||||||
> Click the <kbd>Use this template</kbd> button and clone it in IntelliJ IDEA.
|
> Click the <kbd>Use this template</kbd> button and clone it in IntelliJ IDEA.
|
||||||
|
|
||||||
<!-- Plugin description -->
|
<!-- Plugin description -->
|
||||||
@ -22,8 +21,7 @@ The main goal of this template is to speed up the setup phase of plugin developm
|
|||||||
|
|
||||||
If you're still not quite sure what this is all about, read our introduction: [What is the IntelliJ Platform?][docs:intro]
|
If you're still not quite sure what this is all about, read our introduction: [What is the IntelliJ Platform?][docs:intro]
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
|
||||||
> Click the <kbd>Watch</kbd> button on the top to be notified about releases containing new features and fixes.
|
> Click the <kbd>Watch</kbd> button on the top to be notified about releases containing new features and fixes.
|
||||||
|
|
||||||
### Table of contents
|
### Table of contents
|
||||||
@ -48,7 +46,7 @@ In this README, we will highlight the following elements of template-project cre
|
|||||||
- [Changelog maintenance](#changelog-maintenance) with the Gradle Changelog Plugin
|
- [Changelog maintenance](#changelog-maintenance) with the Gradle Changelog Plugin
|
||||||
- [Release flow](#release-flow) using GitHub Releases
|
- [Release flow](#release-flow) using GitHub Releases
|
||||||
- [Plugin signing](#plugin-signing) with your private certificate
|
- [Plugin signing](#plugin-signing) with your private certificate
|
||||||
- [Publishing the plugin](#publishing-the-plugin) with the Gradle IntelliJ Plugin
|
- [Publishing the plugin](#publishing-the-plugin) with the IntelliJ Platform Gradle Plugin
|
||||||
- [FAQ](#faq)
|
- [FAQ](#faq)
|
||||||
- [Useful links](#useful-links)
|
- [Useful links](#useful-links)
|
||||||
|
|
||||||
@ -64,7 +62,9 @@ All you have to do is click the <kbd>Use this template</kbd> button (you must be
|
|||||||
![Use this template][file:use-this-template.png]
|
![Use this template][file:use-this-template.png]
|
||||||
|
|
||||||
After using the template to create your blank project, the [Template Cleanup][file:template_cleanup.yml] workflow will be triggered to override or remove any template-specific configurations, such as the plugin name, current changelog, etc.
|
After using the template to create your blank project, the [Template Cleanup][file:template_cleanup.yml] workflow will be triggered to override or remove any template-specific configurations, such as the plugin name, current changelog, etc.
|
||||||
Once this is complete, the project is ready to be cloned to your local environment and opened with [IntelliJ IDEA][jb:download-ij].
|
Once this is complete, open the newly created project's _Settings | Actions | General_ page and enable option _Allow GitHub Actions to create and approve pull requests_.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
@ -77,25 +77,23 @@ The next step, after opening your project in IntelliJ IDEA, is to set the proper
|
|||||||
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]
|
||||||
>
|
|
||||||
> To use Java in your plugin, create the `/src/main/java` directory.
|
> To use Java in your plugin, create the `/src/main/java` directory.
|
||||||
|
|
||||||
|
|
||||||
## Gradle configuration
|
## Gradle configuration
|
||||||
|
|
||||||
The recommended method for plugin development involves using the [Gradle][gradle] setup with the [gradle-intellij-plugin][gh:gradle-intellij-plugin] installed.
|
The recommended method for plugin development involves using the [Gradle][gradle] setup with the [intellij-platform-gradle-plugin][gh:intellij-platform-gradle-plugin] installed.
|
||||||
The `gradle-intellij-plugin` makes it possible to run the IDE with your plugin and publish your plugin to JetBrains Marketplace.
|
The IntelliJ Platform Gradle Plugin makes it possible to run the IDE with your plugin and publish your plugin to JetBrains Marketplace.
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
> Make sure to always upgrade to the latest version of IntelliJ Platform Gradle Plugin.
|
||||||
> Make sure to always upgrade to the latest version of `gradle-intellij-plugin`.
|
|
||||||
|
|
||||||
A project built using the IntelliJ Platform Plugin Template includes a Gradle configuration already set up.
|
A project built using the IntelliJ Platform Plugin Template includes a Gradle configuration already set up.
|
||||||
Feel free to read through the [Using Gradle][docs:using-gradle] articles to understand your build better and learn how to customize it.
|
Feel free to read through the [Using Gradle][docs:using-gradle] articles to understand your build better and learn how to customize it.
|
||||||
|
|
||||||
The most significant parts of the current configuration are:
|
The most significant parts of the current configuration are:
|
||||||
- Integration with the [gradle-intellij-plugin][gh:gradle-intellij-plugin] for smoother development.
|
- Integration with the [intellij-platform-gradle-plugin][gh:intellij-platform-gradle-plugin] for smoother development.
|
||||||
- Configuration written with [Gradle Kotlin DSL][gradle:kotlin-dsl].
|
- Configuration written with [Gradle Kotlin DSL][gradle:kotlin-dsl].
|
||||||
- Support for Kotlin and Java implementation.
|
- Support for Kotlin and Java implementation.
|
||||||
- Integration with the [gradle-changelog-plugin][gh:gradle-changelog-plugin], which automatically patches the change notes based on the `CHANGELOG.md` file.
|
- Integration with the [gradle-changelog-plugin][gh:gradle-changelog-plugin], which automatically patches the change notes based on the `CHANGELOG.md` file.
|
||||||
@ -107,20 +105,21 @@ For more details regarding Kotlin integration, please see [Kotlin for Plugin Dev
|
|||||||
|
|
||||||
The project-specific configuration file [`gradle.properties`][file:gradle.properties] contains:
|
The project-specific configuration file [`gradle.properties`][file:gradle.properties] contains:
|
||||||
|
|
||||||
| Property name | Description |
|
| Property name | Description |
|
||||||
|-----------------------|-----------------------------------------------------------------------------------------------------------|
|
|--------------------------|------------------------------------------------------------------------------------------------------|
|
||||||
| `pluginGroup` | Package name - after *using* the template, this will be set to `com.github.username.repo`. |
|
| `pluginGroup` | Package name - after *using* the template, this will be set to `com.github.username.repo`. |
|
||||||
| `pluginName` | Plugin name displayed in JetBrains Marketplace. |
|
| `pluginName` | Plugin name displayed in JetBrains Marketplace. |
|
||||||
| `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. |
|
||||||
| `pluginUntilBuild` | The `until-build` attribute of the `<idea-version>` tag. |
|
| `pluginUntilBuild` | The `until-build` attribute of the `<idea-version>` tag. |
|
||||||
| `platformType` | The type of IDE distribution. |
|
| `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 bundled IDE plugins and plugins from the Plugin Repositories. |
|
| `platformPlugins` | Comma-separated list of dependencies to the plugins from the Plugin Repositories. |
|
||||||
| `gradleVersion` | Version of Gradle used for plugin development. |
|
| `platformBundledPlugins` | Comma-separated list of dependencies to the bundled IDE plugins. |
|
||||||
|
| `gradleVersion` | Version of Gradle used for plugin development. |
|
||||||
|
|
||||||
The properties listed define the plugin itself or configure the [gradle-intellij-plugin][gh:gradle-intellij-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.
|
||||||
|
|
||||||
In addition, extra behaviors are configured through the [`gradle.properties`][file:gradle.properties] file, such as:
|
In addition, extra behaviors are configured through the [`gradle.properties`][file:gradle.properties] file, such as:
|
||||||
|
|
||||||
@ -129,13 +128,12 @@ In addition, extra behaviors are configured through the [`gradle.properties`][fi
|
|||||||
| `kotlin.stdlib.default.dependency` | `false` | Opt-out flag for bundling [Kotlin standard library][docs:kotlin-stdlib] |
|
| `kotlin.stdlib.default.dependency` | `false` | Opt-out flag for bundling [Kotlin standard library][docs:kotlin-stdlib] |
|
||||||
| `org.gradle.configuration-cache` | `true` | Enable [Gradle Configuration Cache][gradle:configuration-cache] |
|
| `org.gradle.configuration-cache` | `true` | Enable [Gradle Configuration Cache][gradle:configuration-cache] |
|
||||||
| `org.gradle.caching` | `true` | Enable [Gradle Build Cache][gradle:build-cache] |
|
| `org.gradle.caching` | `true` | Enable [Gradle Build Cache][gradle:build-cache] |
|
||||||
| `systemProp.org.gradle.unsafe.kotlin.assignment` | `true` | Enable [Gradle Kotlin DSL Lazy Property Assignment][gradle:kotlin-dsl-assignment] |
|
|
||||||
|
|
||||||
### Environment variables
|
### Environment variables
|
||||||
|
|
||||||
Some values used for the Gradle configuration shouldn't be stored in files to avoid publishing them to the Version Control System.
|
Some values used for the Gradle configuration shouldn't be stored in files to avoid publishing them to the Version Control System.
|
||||||
|
|
||||||
To avoid that, environment variables are introduced, which can be provided within the *Run/Debug Configuration* within the IDE, or on the CI – like for GitHub: `⚙️ Settings > Secrets`.
|
To avoid that, environment variables are introduced, which can be provided within the *Run/Debug Configuration* within the IDE, or on the CI – like for GitHub: `⚙️ Settings > Secrets and variables > Actions`.
|
||||||
|
|
||||||
Environment variables used by the current project are related to the [plugin signing](#plugin-signing) and [publishing](#publishing-the-plugin).
|
Environment variables used by the current project are related to the [plugin signing](#plugin-signing) and [publishing](#publishing-the-plugin).
|
||||||
|
|
||||||
@ -148,7 +146,7 @@ Environment variables used by the current project are related to the [plugin sig
|
|||||||
|
|
||||||
For more details on how to generate proper values, check the relevant sections mentioned above.
|
For more details on how to generate proper values, check the relevant sections mentioned above.
|
||||||
|
|
||||||
To configure GitHub secret environment variables, go to the `⚙️ Settings > Secrets` section of your project repository:
|
To configure GitHub secret environment variables, go to the `⚙️ Settings > Secrets and variables > Actions` section of your project repository:
|
||||||
|
|
||||||
![Settings > Secrets][file:settings-secrets.png]
|
![Settings > Secrets][file:settings-secrets.png]
|
||||||
|
|
||||||
@ -185,8 +183,7 @@ A generated IntelliJ Platform Plugin Template repository contains the following
|
|||||||
|
|
||||||
In addition to the configuration files, the most crucial part is the `src` directory, which contains our implementation and the manifest for our plugin – [plugin.xml][file:plugin.xml].
|
In addition to the configuration files, the most crucial part is the `src` directory, which contains our implementation and the manifest for our plugin – [plugin.xml][file:plugin.xml].
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
|
||||||
> To use Java in your plugin, create the `/src/main/java` directory.
|
> To use Java in your plugin, create the `/src/main/java` directory.
|
||||||
|
|
||||||
|
|
||||||
@ -238,15 +235,16 @@ These files are located in `src/main/kotlin`.
|
|||||||
This location indicates the language being used.
|
This location indicates the language being used.
|
||||||
So if you decide to use Java instead (or in addition to Kotlin), these sources should be located in the `src/main/java` directory.
|
So if you decide to use Java instead (or in addition to Kotlin), these sources should be located in the `src/main/java` directory.
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> It is possible to use the [IntelliJ Platform Icons](https://jb.gg/new-ui-icons) in your plugin.
|
||||||
|
|
||||||
To start with the actual implementation, you may check our [IntelliJ Platform SDK DevGuide][docs], which contains an introduction to the essential areas of the plugin development together with dedicated tutorials.
|
To start with the actual implementation, you may check our [IntelliJ Platform SDK DevGuide][docs], which contains an introduction to the essential areas of the plugin development together with dedicated tutorials.
|
||||||
|
|
||||||
> **Warning**
|
> [!WARNING]
|
||||||
>
|
> Remember to remove all non-needed sample code files with their corresponding registration entries in `plugin.xml`.
|
||||||
> Don't forget to remove all non-needed sample code files with their corresponding registration entries in `plugin.xml`.
|
|
||||||
|
|
||||||
For those who value example codes the most, there are also available [IntelliJ SDK Code Samples][gh:code-samples] and [IntelliJ Platform Explorer][jb:ipe] – a search tool for browsing Extension Points inside existing implementations of open-source IntelliJ Platform plugins.
|
For those who value example codes the most, there are also available [IntelliJ SDK Code Samples][gh:code-samples] and [IntelliJ Platform Explorer][jb:ipe] – a search tool for browsing Extension Points inside existing implementations of open-source IntelliJ Platform plugins.
|
||||||
|
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
[Testing plugins][docs:testing-plugins] is an essential part of the plugin development to make sure that everything works as expected between IDE releases and plugin refactorings.
|
[Testing plugins][docs:testing-plugins] is an essential part of the plugin development to make sure that everything works as expected between IDE releases and plugin refactorings.
|
||||||
@ -257,10 +255,9 @@ The IntelliJ Platform Plugin Template project provides integration of two testin
|
|||||||
Most of the IntelliJ Platform codebase tests are model-level, run in a headless environment using an actual IDE instance.
|
Most of the IntelliJ Platform codebase tests are model-level, run in a headless environment using an actual IDE instance.
|
||||||
The tests usually test a feature as a whole rather than individual functions that comprise its implementation, like in unit tests.
|
The tests usually test a feature as a whole rather than individual functions that comprise its implementation, like in unit tests.
|
||||||
|
|
||||||
In `src/test/kotlin`, you'll find a basic `MyPluginTest` test that utilizes `BasePlatformTestCase` and runs a few checks against the XML files to indicate an example operation of creating files on the fly or reading them from `src/test/testData/rename` test resources.
|
In `src/test/kotlin`, you will find a basic `MyPluginTest` test that utilizes `BasePlatformTestCase` and runs a few checks against the XML files to indicate an example operation of creating files on the fly or reading them from `src/test/testData/rename` test resources.
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
|
||||||
> Run your tests using predefined *Run Tests* configuration or by invoking the `./gradlew check` Gradle task.
|
> Run your tests using predefined *Run Tests* configuration or by invoking the `./gradlew check` Gradle task.
|
||||||
|
|
||||||
### Code coverage
|
### Code coverage
|
||||||
@ -278,9 +275,8 @@ If your plugin provides complex user interfaces, you should consider covering th
|
|||||||
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.
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
> Run IDE for UI tests by invoking the `./gradlew runIdeForUiTests` and `./gradlew check` Gradle tasks.
|
||||||
> Run IDE for UI tests using predefined *Run IDE for UI Tests* and then *Run Tests* configurations or by invoking the `./gradlew runIdeForUiTests` and `./gradlew check` Gradle tasks.
|
|
||||||
|
|
||||||
Check the UI Test Example project you can use as a reference for setting up UI testing in your plugin: [intellij-ui-test-robot/ui-test-example][gh:ui-test-example].
|
Check the UI Test Example project you can use as a reference for setting up UI testing in your plugin: [intellij-ui-test-robot/ui-test-example][gh:ui-test-example].
|
||||||
|
|
||||||
@ -314,8 +310,7 @@ Qodana inspections are accessible within the project on two levels:
|
|||||||
|
|
||||||
Qodana inspection is configured with the `qodana { ... }` section in the Gradle build file and [`qodana.yml`][file:qodana.yml] YAML configuration file.
|
Qodana inspection is configured with the `qodana { ... }` section in the Gradle build file and [`qodana.yml`][file:qodana.yml] YAML configuration file.
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
|
||||||
> Qodana requires Docker to be installed and available in your environment.
|
> Qodana requires Docker to be installed and available in your environment.
|
||||||
|
|
||||||
To run inspections, you can use a predefined *Run Qodana* configuration, which will provide a full report on `http://localhost:8080`, or invoke the Gradle task directly with the `./gradlew runInspections` command.
|
To run inspections, you can use a predefined *Run Qodana* configuration, which will provide a full report on `http://localhost:8080`, or invoke the Gradle task directly with the `./gradlew runInspections` command.
|
||||||
@ -331,16 +326,13 @@ 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:gradle-intellij-plugin-runIde] Gradle IntelliJ 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 Verifications | Runs [`:runPluginVerifier`][gh:gradle-intellij-plugin-runPluginVerifier] Gradle IntelliJ Plugin task to check the plugin compatibility against the specified IntelliJ IDEs. |
|
| 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 IDE for UI Tests | Runs [`:runIdeForUiTests`][gh:intellij-ui-test-robot] Gradle IntelliJ Plugin task to allow for running UI tests within the IntelliJ IDE running instance. |
|
|
||||||
| Run Qodana | Runs [`:runInspections`][gh:gradle-qodana-plugin] Gradle Qodana Plugin task. Starts Qodana inspections in a Docker container and serves generated report on `localhost:8080`. |
|
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
|
||||||
> You can find the logs from the running task in the `idea.log` tab.
|
> You can find the logs from the running task in the `idea.log` tab.
|
||||||
>
|
>
|
||||||
> ![Run/Debug configuration logs][file:run-logs.png]
|
> ![Run/Debug configuration logs][file:run-logs.png]
|
||||||
@ -385,8 +377,7 @@ This Template project depends on Gradle plugins and external libraries – and d
|
|||||||
|
|
||||||
All plugins and dependencies used by Gradle are managed with [Gradle version catalog][gradle:version-catalog], which defines versions and coordinates of your dependencies in the [`gradle/libs.versions.toml`][file:libs.versions.toml] file.
|
All plugins and dependencies used by Gradle are managed with [Gradle version catalog][gradle:version-catalog], which defines versions and coordinates of your dependencies in the [`gradle/libs.versions.toml`][file:libs.versions.toml] file.
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
|
||||||
> To add a new dependency to the project, in the `dependencies { ... }` block, add:
|
> To add a new dependency to the project, in the `dependencies { ... }` block, add:
|
||||||
>
|
>
|
||||||
> ```kotlin
|
> ```kotlin
|
||||||
@ -408,8 +399,7 @@ Keeping the project in good shape and having all the dependencies up-to-date req
|
|||||||
|
|
||||||
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].
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
|
||||||
> Dependabot doesn't yet support checking of the Gradle Wrapper.
|
> Dependabot doesn't yet support checking of the Gradle Wrapper.
|
||||||
> Check the [Gradle Releases][gradle:releases] page and update your `gradle.properties` file with:
|
> Check the [Gradle Releases][gradle:releases] page and update your `gradle.properties` file with:
|
||||||
> ```properties
|
> ```properties
|
||||||
@ -429,13 +419,13 @@ The changelog is a curated list that contains information about any new features
|
|||||||
When they're provided, these lists are available in a few different places:
|
When they're provided, these lists are available in a few different places:
|
||||||
- the [CHANGELOG.md](./CHANGELOG.md) file,
|
- the [CHANGELOG.md](./CHANGELOG.md) file,
|
||||||
- the [Releases page][gh:releases],
|
- the [Releases page][gh:releases],
|
||||||
- the *What's new* section of JetBrains Marketplace Plugin page,
|
- the *What's new* section of the JetBrains Marketplace Plugin page,
|
||||||
- and inside the Plugin Manager's item details.
|
- and inside the Plugin Manager's item details.
|
||||||
|
|
||||||
There are many methods for handling the project's changelog.
|
There are many methods for handling the project's changelog.
|
||||||
The one used in the current template project is the [Keep a Changelog][keep-a-changelog] approach.
|
The one used in the current template project is the [Keep a Changelog][keep-a-changelog] approach.
|
||||||
|
|
||||||
The [Gradle Changelog Plugin][gh:gradle-changelog-plugin] takes care of propagating information provided within the [CHANGELOG.md](./CHANGELOG.md) to the [Gradle IntelliJ Plugin][gh:gradle-intellij-plugin].
|
The [Gradle Changelog Plugin][gh:gradle-changelog-plugin] takes care of propagating information provided within the [CHANGELOG.md](./CHANGELOG.md) to the [IntelliJ Platform Gradle Plugin][gh:intellij-platform-gradle-plugin].
|
||||||
You only have to take care of writing down the actual changes in proper sections of the `[Unreleased]` section.
|
You only have to take care of writing down the actual changes in proper sections of the `[Unreleased]` section.
|
||||||
|
|
||||||
You start with an almost empty changelog:
|
You start with an almost empty changelog:
|
||||||
@ -467,7 +457,7 @@ GitHub Actions will swap it and provide you an empty section for the next releas
|
|||||||
- One annoying bug
|
- One annoying bug
|
||||||
```
|
```
|
||||||
|
|
||||||
To configure how the Changelog plugin behaves, i.e., to create headers with the release date, see [Gradle Changelog Plugin][gh:gradle-changelog-plugin] README file.
|
To configure how the Changelog plugin behaves, i.e., to create headers with the release date, see the [Gradle Changelog Plugin][gh:gradle-changelog-plugin] README file.
|
||||||
|
|
||||||
### Release flow
|
### Release flow
|
||||||
|
|
||||||
@ -496,25 +486,25 @@ All the configuration related to the signing should be provided using [environme
|
|||||||
|
|
||||||
To find out how to generate signing certificates, check the [Plugin Signing][docs:plugin-signing] section in the IntelliJ Platform Plugin SDK documentation.
|
To find out how to generate signing certificates, check the [Plugin Signing][docs:plugin-signing] section in the IntelliJ Platform Plugin SDK documentation.
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
|
||||||
> Remember to encode your secret environment variables using `base64` encoding to avoid issues with multi-line values.
|
> Remember to encode your secret environment variables using `base64` encoding to avoid issues with multi-line values.
|
||||||
|
|
||||||
### Publishing the plugin
|
### Publishing the plugin
|
||||||
|
|
||||||
Releasing a plugin to JetBrains Marketplace is a straightforward operation that uses the `publishPlugin` Gradle task provided by the [gradle-intellij-plugin][gh:gradle-intellij-plugin-docs].
|
> [!TIP]
|
||||||
|
> Make sure to follow all guidelines listed in [Publishing a Plugin][docs:publishing] to follow all recommended and required steps.
|
||||||
|
|
||||||
|
Releasing a plugin to [JetBrains Marketplace](https://plugins.jetbrains.com) is a straightforward operation that uses the `publishPlugin` Gradle task provided by the [intellij-platform-gradle-plugin][gh:intellij-platform-gradle-plugin-docs].
|
||||||
In addition, the [Release](.github/workflows/release.yml) workflow automates this process by running the task when a new release appears in the GitHub Releases section.
|
In addition, the [Release](.github/workflows/release.yml) workflow automates this process by running the task when a new release appears in the GitHub Releases section.
|
||||||
|
|
||||||
> **Note**
|
> [!NOTE]
|
||||||
>
|
|
||||||
> Set a suffix to the plugin version to publish it in the custom repository channel, i.e. `v1.0.0-beta` will push your plugin to the `beta` [release channel][docs:release-channel].
|
> Set a suffix to the plugin version to publish it in the custom repository channel, i.e. `v1.0.0-beta` will push your plugin to the `beta` [release channel][docs:release-channel].
|
||||||
|
|
||||||
The authorization process relies on the `PUBLISH_TOKEN` secret environment variable, specified in the _Secrets_ section of the repository _Settings_.
|
The authorization process relies on the `PUBLISH_TOKEN` secret environment variable, specified in the `⚙️ Settings > Secrets and variables > Actions` section of your project repository.
|
||||||
|
|
||||||
You can get that token in your JetBrains Marketplace profile dashboard in the [My Tokens][jb:my-tokens] tab.
|
You can get that token in your JetBrains Marketplace profile dashboard in the [My Tokens][jb:my-tokens] tab.
|
||||||
|
|
||||||
> **Warning**
|
> [!WARNING]
|
||||||
>
|
|
||||||
> Before using the automated deployment process, it is necessary to manually create a new plugin in JetBrains Marketplace to specify options like the license, repository URL, etc.
|
> Before using the automated deployment process, it is necessary to manually create a new plugin in JetBrains Marketplace to specify options like the license, repository URL, etc.
|
||||||
> Please follow the [Publishing a Plugin][docs:publishing] instructions.
|
> Please follow the [Publishing a Plugin][docs:publishing] instructions.
|
||||||
|
|
||||||
@ -532,7 +522,7 @@ You can still replace it or add the `/src/main/java` directory to start working
|
|||||||
Since February 2021, GitHub Actions [support 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 draft release no longer contains built plugin artifact?
|
### Why does the draft release no longer contain a built plugin artifact?
|
||||||
|
|
||||||
All the binaries created with each workflow are still available, but as an output artifact of each run together with tests and Qodana results.
|
All the binaries created with each workflow are still available, but as an output artifact of each run together with tests and Qodana results.
|
||||||
That approach gives more possibilities for testing and debugging pre-releases, for example, in your local environment.
|
That approach gives more possibilities for testing and debugging pre-releases, for example, in your local environment.
|
||||||
@ -540,7 +530,7 @@ That approach gives more possibilities for testing and debugging pre-releases, f
|
|||||||
## Useful links
|
## Useful links
|
||||||
|
|
||||||
- [IntelliJ Platform SDK Plugin SDK][docs]
|
- [IntelliJ Platform SDK Plugin SDK][docs]
|
||||||
- [Gradle IntelliJ Plugin Documentation][gh:gradle-intellij-plugin-docs]
|
- [IntelliJ Platform Gradle Plugin Documentation][gh:intellij-platform-gradle-plugin-docs]
|
||||||
- [IntelliJ Platform Explorer][jb:ipe]
|
- [IntelliJ Platform Explorer][jb:ipe]
|
||||||
- [JetBrains Marketplace Quality Guidelines][jb:quality-guidelines]
|
- [JetBrains Marketplace Quality Guidelines][jb:quality-guidelines]
|
||||||
- [IntelliJ Platform UI Guidelines][jb:ui-guidelines]
|
- [IntelliJ Platform UI Guidelines][jb:ui-guidelines]
|
||||||
@ -590,10 +580,10 @@ That approach gives more possibilities for testing and debugging pre-releases, f
|
|||||||
[gh:dependabot]: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/keeping-your-dependencies-updated-automatically
|
[gh:dependabot]: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/keeping-your-dependencies-updated-automatically
|
||||||
[gh:dependabot-pr]: https://github.com/JetBrains/intellij-platform-plugin-template/pull/73
|
[gh:dependabot-pr]: https://github.com/JetBrains/intellij-platform-plugin-template/pull/73
|
||||||
[gh:gradle-changelog-plugin]: https://github.com/JetBrains/gradle-changelog-plugin
|
[gh:gradle-changelog-plugin]: https://github.com/JetBrains/gradle-changelog-plugin
|
||||||
[gh:gradle-intellij-plugin]: https://github.com/JetBrains/gradle-intellij-plugin
|
[gh:intellij-platform-gradle-plugin]: https://github.com/JetBrains/intellij-platform-gradle-plugin
|
||||||
[gh:gradle-intellij-plugin-docs]: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html
|
[gh:intellij-platform-gradle-plugin-docs]: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin.html
|
||||||
[gh:gradle-intellij-plugin-runIde]: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#tasks-runide
|
[gh:intellij-platform-gradle-plugin-runIde]: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-tasks.html#runIde
|
||||||
[gh:gradle-intellij-plugin-runPluginVerifier]: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#tasks-runpluginverifier
|
[gh:intellij-platform-gradle-plugin-verifyPlugin]: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-tasks.html#verifyPlugin
|
||||||
[gh:gradle-qodana-plugin]: https://github.com/JetBrains/gradle-qodana-plugin
|
[gh:gradle-qodana-plugin]: https://github.com/JetBrains/gradle-qodana-plugin
|
||||||
[gh:intellij-ui-test-robot]: https://github.com/JetBrains/intellij-ui-test-robot
|
[gh:intellij-ui-test-robot]: https://github.com/JetBrains/intellij-ui-test-robot
|
||||||
[gh:kover]: https://github.com/Kotlin/kotlinx-kover
|
[gh:kover]: https://github.com/Kotlin/kotlinx-kover
|
||||||
|
178
build.gradle.kts
@ -1,89 +1,66 @@
|
|||||||
import org.jetbrains.changelog.Changelog
|
import org.jetbrains.changelog.Changelog
|
||||||
import org.jetbrains.changelog.markdownToHTML
|
import org.jetbrains.changelog.markdownToHTML
|
||||||
|
import org.jetbrains.intellij.platform.gradle.TestFrameworkType
|
||||||
fun properties(key: String) = providers.gradleProperty(key)
|
|
||||||
fun environment(key: String) = providers.environmentVariable(key)
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("java") // Java support
|
id("java") // Java support
|
||||||
alias(libs.plugins.kotlin) // Kotlin support
|
alias(libs.plugins.kotlin) // Kotlin support
|
||||||
alias(libs.plugins.gradleIntelliJPlugin) // Gradle IntelliJ Plugin
|
alias(libs.plugins.intelliJPlatform) // IntelliJ Platform Gradle Plugin
|
||||||
alias(libs.plugins.changelog) // Gradle Changelog Plugin
|
alias(libs.plugins.changelog) // Gradle Changelog Plugin
|
||||||
alias(libs.plugins.qodana) // Gradle Qodana Plugin
|
alias(libs.plugins.qodana) // Gradle Qodana Plugin
|
||||||
alias(libs.plugins.kover) // Gradle Kover Plugin
|
alias(libs.plugins.kover) // Gradle Kover Plugin
|
||||||
}
|
}
|
||||||
|
|
||||||
group = properties("pluginGroup").get()
|
group = providers.gradleProperty("pluginGroup").get()
|
||||||
version = properties("pluginVersion").get()
|
version = providers.gradleProperty("pluginVersion").get()
|
||||||
|
|
||||||
|
// Set the JVM language level used to build the project.
|
||||||
|
kotlin {
|
||||||
|
jvmToolchain(17)
|
||||||
|
}
|
||||||
|
|
||||||
// Configure project's dependencies
|
// Configure project's dependencies
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
|
||||||
|
// IntelliJ Platform Gradle Plugin Repositories Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-repositories-extension.html
|
||||||
|
intellijPlatform {
|
||||||
|
defaultRepositories()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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/platforms.html#sub:version-catalog
|
||||||
dependencies {
|
dependencies {
|
||||||
// implementation(libs.annotations)
|
testImplementation(libs.junit)
|
||||||
}
|
|
||||||
|
|
||||||
// Set the JVM language level used to build the project. Use Java 11 for 2020.3+, and Java 17 for 2022.2+.
|
// IntelliJ Platform Gradle Plugin Dependencies Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html
|
||||||
kotlin {
|
intellijPlatform {
|
||||||
@Suppress("UnstableApiUsage")
|
create(providers.gradleProperty("platformType"), providers.gradleProperty("platformVersion"))
|
||||||
jvmToolchain {
|
|
||||||
languageVersion = JavaLanguageVersion.of(17)
|
// Plugin Dependencies. Uses `platformBundledPlugins` property from the gradle.properties file for bundled IntelliJ Platform plugins.
|
||||||
vendor = JvmVendorSpec.JETBRAINS
|
bundledPlugins(providers.gradleProperty("platformBundledPlugins").map { it.split(',') })
|
||||||
|
|
||||||
|
// Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file for plugin from JetBrains Marketplace.
|
||||||
|
plugins(providers.gradleProperty("platformPlugins").map { it.split(',') })
|
||||||
|
|
||||||
|
instrumentationTools()
|
||||||
|
pluginVerifier()
|
||||||
|
zipSigner()
|
||||||
|
testFramework(TestFrameworkType.Platform)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Configure Gradle IntelliJ Plugin - read more: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html
|
// Configure IntelliJ Platform Gradle Plugin - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-extension.html
|
||||||
intellij {
|
intellijPlatform {
|
||||||
pluginName = properties("pluginName")
|
pluginConfiguration {
|
||||||
version = properties("platformVersion")
|
version = providers.gradleProperty("pluginVersion")
|
||||||
type = properties("platformType")
|
|
||||||
|
|
||||||
// Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file.
|
|
||||||
plugins = properties("platformPlugins").map { it.split(',').map(String::trim).filter(String::isNotEmpty) }
|
|
||||||
}
|
|
||||||
|
|
||||||
// Configure Gradle Changelog Plugin - read more: https://github.com/JetBrains/gradle-changelog-plugin
|
|
||||||
changelog {
|
|
||||||
groups.empty()
|
|
||||||
repositoryUrl = properties("pluginRepositoryUrl")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Configure Gradle Qodana Plugin - read more: https://github.com/JetBrains/gradle-qodana-plugin
|
|
||||||
qodana {
|
|
||||||
cachePath = provider { file(".qodana").canonicalPath }
|
|
||||||
reportPath = provider { file("build/reports/inspections").canonicalPath }
|
|
||||||
saveReport = true
|
|
||||||
showReport = environment("QODANA_SHOW_REPORT").map { it.toBoolean() }.getOrElse(false)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Configure Gradle Kover Plugin - read more: https://github.com/Kotlin/kotlinx-kover#configuration
|
|
||||||
koverReport {
|
|
||||||
defaults {
|
|
||||||
xml {
|
|
||||||
onCheck = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks {
|
|
||||||
wrapper {
|
|
||||||
gradleVersion = properties("gradleVersion").get()
|
|
||||||
}
|
|
||||||
|
|
||||||
patchPluginXml {
|
|
||||||
version = properties("pluginVersion")
|
|
||||||
sinceBuild = properties("pluginSinceBuild")
|
|
||||||
untilBuild = properties("pluginUntilBuild")
|
|
||||||
|
|
||||||
// Extract the <!-- Plugin description --> section from README.md and provide for the plugin's manifest
|
// Extract the <!-- Plugin description --> section from README.md and provide for the plugin's manifest
|
||||||
pluginDescription = providers.fileContents(layout.projectDirectory.file("README.md")).asText.map {
|
description = providers.fileContents(layout.projectDirectory.file("README.md")).asText.map {
|
||||||
val start = "<!-- Plugin description -->"
|
val start = "<!-- Plugin description -->"
|
||||||
val end = "<!-- Plugin description end -->"
|
val end = "<!-- Plugin description end -->"
|
||||||
|
|
||||||
with (it.lines()) {
|
with(it.lines()) {
|
||||||
if (!containsAll(listOf(start, end))) {
|
if (!containsAll(listOf(start, end))) {
|
||||||
throw GradleException("Plugin description section not found in README.md:\n$start ... $end")
|
throw GradleException("Plugin description section not found in README.md:\n$start ... $end")
|
||||||
}
|
}
|
||||||
@ -93,7 +70,7 @@ tasks {
|
|||||||
|
|
||||||
val changelog = project.changelog // local variable for configuration cache compatibility
|
val changelog = project.changelog // local variable for configuration cache compatibility
|
||||||
// Get the latest available change notes from the changelog file
|
// Get the latest available change notes from the changelog file
|
||||||
changeNotes = properties("pluginVersion").map { pluginVersion ->
|
changeNotes = providers.gradleProperty("pluginVersion").map { pluginVersion ->
|
||||||
with(changelog) {
|
with(changelog) {
|
||||||
renderItem(
|
renderItem(
|
||||||
(getOrNull(pluginVersion) ?: getUnreleased())
|
(getOrNull(pluginVersion) ?: getUnreleased())
|
||||||
@ -103,29 +80,78 @@ tasks {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ideaVersion {
|
||||||
|
sinceBuild = providers.gradleProperty("pluginSinceBuild")
|
||||||
|
untilBuild = providers.gradleProperty("pluginUntilBuild")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Configure UI tests plugin
|
signing {
|
||||||
// Read more: https://github.com/JetBrains/intellij-ui-test-robot
|
certificateChain = providers.environmentVariable("CERTIFICATE_CHAIN")
|
||||||
runIdeForUiTests {
|
privateKey = providers.environmentVariable("PRIVATE_KEY")
|
||||||
systemProperty("robot-server.port", "8082")
|
password = providers.environmentVariable("PRIVATE_KEY_PASSWORD")
|
||||||
systemProperty("ide.mac.message.dialogs.as.sheets", "false")
|
|
||||||
systemProperty("jb.privacy.policy.text", "<!--999.999-->")
|
|
||||||
systemProperty("jb.consents.confirmation.enabled", "false")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
signPlugin {
|
publishing {
|
||||||
certificateChain = environment("CERTIFICATE_CHAIN")
|
token = providers.environmentVariable("PUBLISH_TOKEN")
|
||||||
privateKey = environment("PRIVATE_KEY")
|
|
||||||
password = environment("PRIVATE_KEY_PASSWORD")
|
|
||||||
}
|
|
||||||
|
|
||||||
publishPlugin {
|
|
||||||
dependsOn("patchChangelog")
|
|
||||||
token = environment("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/deployment.html#specifying-a-release-channel
|
// https://plugins.jetbrains.com/docs/intellij/deployment.html#specifying-a-release-channel
|
||||||
channels = properties("pluginVersion").map { listOf(it.split('-').getOrElse(1) { "default" }.split('.').first()) }
|
channels = providers.gradleProperty("pluginVersion").map { listOf(it.substringAfter('-', "").substringBefore('.').ifEmpty { "default" }) }
|
||||||
|
}
|
||||||
|
|
||||||
|
pluginVerification {
|
||||||
|
ides {
|
||||||
|
recommended()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Configure Gradle Changelog Plugin - read more: https://github.com/JetBrains/gradle-changelog-plugin
|
||||||
|
changelog {
|
||||||
|
groups.empty()
|
||||||
|
repositoryUrl = providers.gradleProperty("pluginRepositoryUrl")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Configure Gradle Kover Plugin - read more: https://github.com/Kotlin/kotlinx-kover#configuration
|
||||||
|
kover {
|
||||||
|
reports {
|
||||||
|
total {
|
||||||
|
xml {
|
||||||
|
onCheck = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks {
|
||||||
|
wrapper {
|
||||||
|
gradleVersion = providers.gradleProperty("gradleVersion").get()
|
||||||
|
}
|
||||||
|
|
||||||
|
publishPlugin {
|
||||||
|
dependsOn(patchChangelog)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
intellijPlatformTesting {
|
||||||
|
runIde {
|
||||||
|
register("runIdeForUiTests") {
|
||||||
|
task {
|
||||||
|
jvmArgumentProviders += CommandLineArgumentProvider {
|
||||||
|
listOf(
|
||||||
|
"-Drobot-server.port=8082",
|
||||||
|
"-Dide.mac.message.dialogs.as.sheets=false",
|
||||||
|
"-Djb.privacy.policy.text=<!--999.999-->",
|
||||||
|
"-Djb.consents.confirmation.enabled=false",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
robotServerPlugin()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,22 +4,24 @@ 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 = 1.11.3
|
pluginVersion = 2.0.2
|
||||||
|
|
||||||
# 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 = 223
|
pluginSinceBuild = 233
|
||||||
pluginUntilBuild = 233.*
|
pluginUntilBuild = 242.*
|
||||||
|
|
||||||
# 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
|
||||||
platformType = IC
|
platformType = IC
|
||||||
platformVersion = 2022.3.3
|
platformVersion = 2023.3.8
|
||||||
|
|
||||||
# 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.intellij.java, com.jetbrains.php:203.4449.22
|
# Example: platformPlugins = com.jetbrains.php:203.4449.22, org.intellij.scala:2023.3.27@EAP
|
||||||
platformPlugins =
|
platformPlugins =
|
||||||
|
# Example: platformBundledPlugins = com.intellij.java
|
||||||
|
platformBundledPlugins =
|
||||||
|
|
||||||
# Gradle Releases -> https://github.com/gradle/gradle/releases
|
# Gradle Releases -> https://github.com/gradle/gradle/releases
|
||||||
gradleVersion = 8.5
|
gradleVersion = 8.10.2
|
||||||
|
|
||||||
# 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
|
||||||
@ -29,6 +31,3 @@ org.gradle.configuration-cache = true
|
|||||||
|
|
||||||
# Enable Gradle Build Cache -> https://docs.gradle.org/current/userguide/build_cache.html
|
# Enable Gradle Build Cache -> https://docs.gradle.org/current/userguide/build_cache.html
|
||||||
org.gradle.caching = true
|
org.gradle.caching = true
|
||||||
|
|
||||||
# Enable Gradle Kotlin DSL Lazy Property Assignment -> https://docs.gradle.org/current/userguide/kotlin_dsl.html#kotdsl:assignment
|
|
||||||
systemProp.org.gradle.unsafe.kotlin.assignment = true
|
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
[versions]
|
[versions]
|
||||||
# libraries
|
# libraries
|
||||||
annotations = "24.1.0"
|
junit = "4.13.2"
|
||||||
|
|
||||||
# plugins
|
# plugins
|
||||||
kotlin = "1.9.21"
|
changelog = "2.2.1"
|
||||||
changelog = "2.2.0"
|
intelliJPlatform = "2.1.0"
|
||||||
gradleIntelliJPlugin = "1.16.1"
|
kotlin = "1.9.25"
|
||||||
qodana = "0.1.13"
|
kover = "0.8.3"
|
||||||
kover = "0.7.5"
|
qodana = "2024.2.3"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
annotations = { group = "org.jetbrains", name = "annotations", version.ref = "annotations" }
|
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
||||||
|
|
||||||
[plugins]
|
[plugins]
|
||||||
changelog = { id = "org.jetbrains.changelog", version.ref = "changelog" }
|
changelog = { id = "org.jetbrains.changelog", version.ref = "changelog" }
|
||||||
gradleIntelliJPlugin = { id = "org.jetbrains.intellij", version.ref = "gradleIntelliJPlugin" }
|
intelliJPlatform = { id = "org.jetbrains.intellij.platform", version.ref = "intelliJPlatform" }
|
||||||
kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
||||||
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" }
|
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" }
|
||||||
qodana = { id = "org.jetbrains.qodana", version.ref = "qodana" }
|
qodana = { id = "org.jetbrains.qodana", version.ref = "qodana" }
|
||||||
|
BIN
gradle/wrapper/gradle-wrapper.jar
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-8.5-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
7
gradlew
vendored
@ -15,6 +15,8 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
@ -55,7 +57,7 @@
|
|||||||
# Darwin, MinGW, and NonStop.
|
# Darwin, MinGW, and NonStop.
|
||||||
#
|
#
|
||||||
# (3) This script is generated from the Groovy template
|
# (3) This script is generated from the Groovy template
|
||||||
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
# within the Gradle project.
|
# within the Gradle project.
|
||||||
#
|
#
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
@ -84,7 +86,8 @@ done
|
|||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
APP_BASE_NAME=${0##*/}
|
APP_BASE_NAME=${0##*/}
|
||||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
|
||||||
|
' "$PWD" ) || exit
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD=maximum
|
MAX_FD=maximum
|
||||||
|
22
gradlew.bat
vendored
@ -13,6 +13,8 @@
|
|||||||
@rem See the License for the specific language governing permissions and
|
@rem See the License for the specific language governing permissions and
|
||||||
@rem limitations under the License.
|
@rem limitations under the License.
|
||||||
@rem
|
@rem
|
||||||
|
@rem SPDX-License-Identifier: Apache-2.0
|
||||||
|
@rem
|
||||||
|
|
||||||
@if "%DEBUG%"=="" @echo off
|
@if "%DEBUG%"=="" @echo off
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
@ -43,11 +45,11 @@ set JAVA_EXE=java.exe
|
|||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation.
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation.
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# https://www.jetbrains.com/help/qodana/qodana-yaml.html
|
# https://www.jetbrains.com/help/qodana/qodana-yaml.html
|
||||||
|
|
||||||
version: 1.0
|
version: 1.0
|
||||||
linter: jetbrains/qodana-jvm-community:latest
|
linter: jetbrains/qodana-jvm-community:2024.2
|
||||||
projectJDK: "17"
|
projectJDK: "17"
|
||||||
profile:
|
profile:
|
||||||
name: qodana.recommended
|
name: qodana.recommended
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
plugins {
|
|
||||||
id("org.gradle.toolchains.foojay-resolver-convention") version "0.7.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
rootProject.name = "IntelliJ Platform Plugin Template"
|
rootProject.name = "IntelliJ Platform Plugin Template"
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
|
||||||
|
}
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M32.0845 7.94025V4H24.0203V7.9896H16.029V4H7.91553V7.94025H4V36H16.0044V32.0045C16.0058 30.9457 16.4274 29.9308 17.1766 29.1826C17.9258 28.4345 18.9412 28.0143 20 28.0143C21.0588 28.0143 22.0743 28.4345 22.8234 29.1826C23.5726 29.9308 23.9942 30.9457 23.9956 32.0045V36H36V7.94025H32.0845Z"
|
|
||||||
fill="url(#paint0_linear)"/>
|
|
||||||
<defs>
|
|
||||||
<linearGradient id="paint0_linear" x1="2.94192" y1="4.89955" x2="37.7772" y2="39.7345" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop offset="0.15937" stop-color="#3BEA62"/>
|
|
||||||
<stop offset="0.5404" stop-color="#3C99CC"/>
|
|
||||||
<stop offset="0.93739" stop-color="#6B57FF"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 795 B |