diff --git a/.idea/kotlinScripting.xml b/.idea/kotlinScripting.xml
deleted file mode 100644
index cdb3091f1..000000000
--- a/.idea/kotlinScripting.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
- 2147483647
- true
-
-
-
\ No newline at end of file
diff --git a/ijs.tree b/ijs.tree
index 376d2c33c..fad94e342 100644
--- a/ijs.tree
+++ b/ijs.tree
@@ -412,6 +412,7 @@
+
diff --git a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin.md b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin.md
index 4d742a2ee..b8c3e7413 100644
--- a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin.md
+++ b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin.md
@@ -90,7 +90,7 @@ It can be omitted when referring to any IntelliJ Platform SDK dependencies witho
{id="plugin.settings"}
-If you define repositories within the settings.gradle.kts using the `dependencyResolutionManagement` Gradle, make sure to include the Settings plugin in your settings.gradle.kts.
+If you define repositories within the settings.gradle.kts using the `dependencyResolutionManagement` Gradle, make sure to include the Settings plugin in your settings.gradle.kts.
## Configuration
@@ -228,21 +228,21 @@ dependencies {
val type = providers.gradleProperty("platformType")
val version = providers.gradleProperty("platformVersion")
- intellijPlatform(type, version)
+ create(type, version)
}
}
```
-The `intellijPlatform` helper accepts also the `IntelliJPlatformType` enum type:
+The `intellijPlatform` helper accepts also the [`IntelliJPlatformType`](tools_intellij_platform_gradle_plugin_types.md#IntelliJPlatformType) type:
```kotlin
-import org.jetbrains.intellij.platform.gradle.utils.IntelliJPlatformType
+import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType
dependencies {
intellijPlatform {
val version = providers.gradleProperty("platformVersion")
- intellijPlatform(IntelliJPlatformType.IntellijIdeaUltimate, version)
+ create(IntelliJPlatformType.IntellijIdeaUltimate, version)
}
}
```
diff --git a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_build_features.md b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_build_features.md
index d65fe0767..ca9c2a75f 100644
--- a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_build_features.md
+++ b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_build_features.md
@@ -34,10 +34,6 @@ Example
org.jetbrains.intellij.buildFeature.buildSearchableOptions=false
```
-See also:
-- [Tasks: buildSearchableOptions`](tools_intellij_platform_gradle_plugin_tasks.md#buildSearchableOptions)
-- [Build Features: `noSearchableOptionsWarning`](tools_intellij_platform_gradle_plugin_build_features.md#noSearchableOptionsWarning)
-
## paidPluginSearchableOptionsWarning
{#paidPluginSearchableOptionsWarning}
@@ -62,7 +58,7 @@ org.jetbrains.intellij.platform.buildFeature.paidPluginSearchableOptionsWarning=
Checks whether the currently used Gradle IntelliJ Plugin is outdated and if a new release is available.
The plugin performs an update check on every run asking the GitHub Releases page for the redirection URL
-to the latest version with `HEAD` HTTP request: `https://github.com/jetbrains/gradle-intellij-plugin/releases/latest`.
+to the latest version with `HEAD` HTTP request: [](https://github.com/jetbrains/gradle-intellij-plugin/releases/latest).
If the current version is outdated, the plugin will emit a warning with its current and the latest version.
diff --git a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_dependencies_extension.md b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_dependencies_extension.md
index 23b1c81b6..840d1c8d2 100644
--- a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_dependencies_extension.md
+++ b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_dependencies_extension.md
@@ -4,5 +4,68 @@
IntelliJ Platform Gradle Plugin dependencies extension.
+Extension class for managing IntelliJ Platform dependencies in a Gradle build script applied to the `DependencyHandler`.
+
+This class provides methods for adding dependencies to different IntelliJ Platform products and managing local dependencies.
+
+It also includes methods for adding JetBrains Runtime, IntelliJ Platform plugins, IntelliJ Platform bundled plugins, IntelliJ Plugin Verifier, and Marketplace ZIP Signer.
+
+**Example:**
+
+```kotlin
+import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType
+
+dependencies {
+ // ...
+
+ intellijPlatform {
+ // ...
+
+ create(IntelliJPlatformType.PhpStorm, "2023.3")
+ create("PS", "2023.3")
+ intellijIdeaCommunity("2023.3")
+ local(file("/path/to/ide/"))
+ jetbrainsRuntime("...")
+ plugin("org.intellij.scala")
+ bundledPlugin("com.intellij.java")
+ pluginVerifier()
+ zipSigner()
+ }
+}
+```
+
+> Just one IntelliJ Platform dependency can be added to the project at the time.
+>
+{style="warning"}
+
+| Function | Description |
+|----------------------------------------------------------------------------------------|----------------------------------------------------------------|
+| `create(type, version)` | Adds a dependency on the IntelliJ Platform. |
+| `androidStudio(version)` | Adds a dependency on Android Studio. |
+| `clion(version)` | Adds a dependency on CLion. |
+| `fleetBackend(version)` | Adds a dependency on Fleet Backend. |
+| `gateway(version)` | Adds a dependency on Gateway. |
+| `goland(version)` | Adds a dependency on GoLand. |
+| `intellijIdeaCommunity(version)` | Adds a dependency on IntelliJ IDEA Community. |
+| `intellijIdeaUltimate(version)` | Adds a dependency on IntelliJ IDEA Ultimate. |
+| `phpstorm(version)` | Adds a dependency on PhpStorm. |
+| `pycharmCommunity(version)` | Adds a dependency on PyCharm Community. |
+| `pycharmProfessional(version)` | Adds a dependency on PyCharm Professional. |
+| `rider(version)` | Adds a dependency on Rider. |
+| `rustRover(version)` | Adds a dependency on Rust Rover. |
+| `writerside(version)` | Adds a dependency on Writerside. |
+| `local(localPath)` | Adds a local dependency on a local IntelliJ Platform instance. |
+| `jetbrainsRuntime(version, variant, architecture)` `jetbrainsRuntime(explicitVersion)` | Adds a dependency on JetBrains Runtime. |
+| `plugin(id, version, channel)` | Adds a dependency on a plugin for IntelliJ Platform. |
+| `bundledPlugin(id)` | Adds a dependency on a bundled IntelliJ Platform plugin. |
+| `pluginVerifier(version)` | Adds a dependency on IntelliJ Plugin Verifier. |
+| `zipSigner(version)` | Adds a dependency on Marketplace ZIP Signer. |
+
+See also:
+- [](verifying_plugin_compatibility.md)
+- [Tasks: `signPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin)
+- [Tasks: `verifyPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin)
+- [Types: `IntelliJPlatformType`](tools_intellij_platform_gradle_plugin_types.md#IntelliJPlatformType)
+
diff --git a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_extension.md b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_extension.md
index 72704de7c..600664d5e 100644
--- a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_extension.md
+++ b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_extension.md
@@ -7,6 +7,7 @@
The _IntelliJ Platform Gradle Plugin_ introduces a top-level `intellijPlatform` extension.
It consists of sections dedicated to the general Gradle plugin configuration, plugin.xml definition, publishing, signing, and verifying of the output plugin for IntelliJ-based IDEs.
+
## IntelliJ Platform
{#intellijPlatform}
@@ -20,13 +21,22 @@ intellijPlatform {
buildSearchableOptions.set(true)
sandboxContainer.set("...")
- pluginConfiguration { ... }
- publishing { ... }
- signing { ... }
- verifyPlugin { ... }
+ pluginConfiguration {
+ // ...
+ }
+ publishing {
+ // ...
+ }
+ signing {
+ // ...
+ }
+ verifyPlugin {
+ // ...
+ }
}
```
+
### instrumentCode
{#intellijPlatform-instrumentCode}
@@ -39,7 +49,7 @@ The compiled code will be enhanced with:
- nullability assertions
- post-processing of forms created by IntelliJ GUI Designer
-Controls the execution of the [](tools_intellij_platform_gradle_plugin_tasks.md#instrumentCode) task.
+Controls the execution of the [`instrumentCode`](tools_intellij_platform_gradle_plugin_tasks.md#instrumentCode) task.
{style="narrow"}
Type
@@ -48,15 +58,12 @@ Type
Default value
: `true`
-See also:
-- [Tasks: `instrumentCode`](tools_intellij_platform_gradle_plugin_tasks.md#instrumentCode)
-
### buildSearchableOptions
{#intellijPlatform-buildSearchableOptions}
Builds an index of UI components (searchable options) for the plugin.
-Controls the execution of the [](tools_intellij_platform_gradle_plugin_tasks.md#buildSearchableOptions) task.
+Controls the execution of the [`buildSearchableOptions`](tools_intellij_platform_gradle_plugin_tasks.md#buildSearchableOptions) task.
{style="narrow"}
Type
@@ -66,7 +73,6 @@ Default value
: `true`
See also:
-- [Tasks: `buildSearchableOptions`](tools_intellij_platform_gradle_plugin_tasks.md#buildSearchableOptions)
- [Build Features: `noSearchableOptionsWarning`](tools_intellij_platform_gradle_plugin_build_features.md#noSearchableOptionsWarning)
@@ -80,7 +86,7 @@ Type
: `DirectoryProperty`
Default value
-: build/
+: [buildDirectory]/[Sandbox.CONTAINER]
See also:
- [Tasks: `prepareSandbox`](tools_intellij_platform_gradle_plugin_tasks.md#prepareSandbox)
@@ -91,13 +97,13 @@ See also:
{#intellijPlatform-pluginConfiguration}
Configures the plugin definition and stores in the `plugin.xml` file.
-Data provided to the `intellijPlatform.pluginConfiguration {}` extension is passed to the [](tools_intellij_platform_gradle_plugin_tasks.md#patchPluginXml) task, which overrides the plugin.xml file with new values.
+Data provided to the `intellijPlatform.pluginConfiguration {}` extension is passed to the [`patchPluginXml`](tools_intellij_platform_gradle_plugin_tasks.md#patchPluginXml) task, which overrides the plugin.xml file with new values.
**Example:**
```kotlin
intellijPlatform {
- ...
+ // ...
pluginConfiguration {
id.set("my-plugin-id")
@@ -110,9 +116,15 @@ intellijPlatform {
""".trimIndent()
)
- productDescriptor { ... }
- ideaVersion { ... }
- vendor { ... }
+ productDescriptor {
+ // ...
+ }
+ ideaVersion {
+ // ...
+ }
+ vendor {
+ // ...
+ }
}
}
```
@@ -130,7 +142,7 @@ The plugin's unique identifier.
This should mirror the structure of fully qualified Java packages and must remain distinct from the IDs of existing plugins.
This ID is a technical descriptor used not only within the IDE, but also on [JetBrains Marketplace](https://plugins.jetbrains.com/).
-Please restrict input to characters, numbers, and `.`/`-`/`_` symbols , and aim for a concise length.
+Please restrict input to characters, numbers, and `.`/`-`/`_` symbols, and aim for a concise length.
The entered value will populate the `` element.
@@ -166,7 +178,7 @@ The plugin version, presented in the Plugins settings dialog and on its JetBrain
For plugins uploaded to the JetBrains Marketplace, semantic versioning must be adhered to.
-The specified value will be used as an `` element.
+The specified value will be used as a `` element.
{style="narrow"}
Type
@@ -225,10 +237,10 @@ A part of the [](#intellijPlatform-pluginConfiguration) which describes the `pro
```kotlin
intellijPlatform {
- ...
+ // ...
pluginConfiguration {
- ...
+ // ...
productDescriptor {
code.set("MY_CODE")
@@ -243,6 +255,7 @@ intellijPlatform {
See also:
- [How to add required parameters for paid plugins](https://plugins.jetbrains.com/docs/marketplace/add-required-parameters.html)
+
### code
{#intellijPlatform-pluginConfiguration-productDescriptor-code}
@@ -321,10 +334,10 @@ A part of the [](#intellijPlatform-pluginConfiguration) which describes the `ide
```kotlin
intellijPlatform {
- ...
+ // ...
pluginConfiguration {
- ...
+ // ...
ideaVersion {
sinceBuild.set("241")
@@ -334,6 +347,7 @@ intellijPlatform {
}
```
+
### sinceBuild
{#intellijPlatform-pluginConfiguration-ideaVersion-sinceBuild}
@@ -387,10 +401,10 @@ A part of the [](#intellijPlatform-pluginConfiguration) which describes the `ven
```kotlin
intellijPlatform {
- ...
+ // ...
pluginConfiguration {
- ...
+ // ...
vendor {
name.set("JetBrains")
@@ -460,7 +474,7 @@ All values are passed to the [](tools_intellij_platform_gradle_plugin_tasks.md#p
```kotlin
intellijPlatform {
- ...
+ // ...
publishing {
host.set("")
@@ -559,11 +573,35 @@ See also:
Plugin signing configuration.
+**Example:**
+
+```kotlin
+intellijPlatform {
+ // ...
+
+ signing {
+ cliPath.set(file("/path/to/marketplace-zip-signer-cli.jar"))
+ keyStore.set(file("/path/to/keyStore.ks"))
+ keyStorePassword.set("...")
+ keyStoreKeyAlias.set("...")
+ keyStoreType.set("...")
+ keyStoreProviderName.set("...")
+ privateKey.set("...")
+ privateKeyFile.set(file("/path/to/private.pem"))
+ password.set("...")
+ certificateChain.set("...")
+ certificateChainFile.set(file("/path/to/chain.crt"))
+ }
+}
+```
+
See also:
- [](plugin_signing.md)
+- [Tasks: `signPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin)
- [Task Awares: `SigningAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SigningAware)
- [Marketplace ZIP Signer](https://github.com/JetBrains/marketplace-zip-signer)
+
### cliPath
{#intellijPlatform-signing-cliPath}
@@ -573,6 +611,9 @@ A path to the local Marketplace ZIP Signer CLI tool to be used.
Type
: `RegularFileProperty`
+See also:
+- [Task Awares: `SigningAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SigningAware)
+
### keyStore
{#intellijPlatform-signing-keyStore}
@@ -584,6 +625,9 @@ Refers to `ks` CLI option.
Type
: `Property`
+See also:
+- [Tasks: `signPlugin.keyStore`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin-keyStore)
+
### keyStorePassword
{#intellijPlatform-signing-keyStorePassword}
@@ -595,6 +639,9 @@ Refers to `ks-pass` CLI option.
Type
: `Property`
+See also:
+- [Tasks: `signPlugin.keyStorePassword`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin-keyStorePassword)
+
### keyStoreKeyAlias
{#intellijPlatform-signing-keyStoreKeyAlias}
@@ -606,6 +653,9 @@ Refers to `ks-key-alias` CLI option.
Type
: `Property`
+See also:
+- [Tasks: `signPlugin.keyStoreKeyAlias`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin-keyStoreKeyAlias)
+
### keyStoreType
{#intellijPlatform-signing-keyStoreType}
@@ -617,6 +667,9 @@ Refers to `ks-type` CLI option.
Type
: `Property`
+See also:
+- [Tasks: `signPlugin.keyStoreType`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin-keyStoreType)
+
### keyStoreProviderName
{#intellijPlatform-signing-keyStoreProviderName}
@@ -628,6 +681,9 @@ Refers to `ks-provider-name` CLI option.
Type
: `Property`
+See also:
+- [Tasks: `signPlugin.keyStoreProviderName`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin-keyStoreProviderName)
+
### privateKey
{#intellijPlatform-signing-privateKey}
@@ -635,10 +691,15 @@ Type
Encoded private key in the PEM format.
Refers to `key` CLI option.
+Takes precedence over the [](#intellijPlatform-signing-privateKeyFile) property.
+
{style="narrow"}
Type
: `Property`
+See also:
+- [Tasks: `signPlugin.privateKey`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin-privateKey)
+
### privateKeyFile
{#intellijPlatform-signing-privateKeyFile}
@@ -650,6 +711,9 @@ Refers to `key-file` CLI option.
Type
: `RegularFileProperty`
+See also:
+- [Tasks: `signPlugin.privateKeyFile`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin-privateKeyFile)
+
### password
{#intellijPlatform-signing-password}
@@ -661,6 +725,9 @@ Refers to `key-pass` CLI option.
Type
: `Property`
+See also:
+- [Tasks: `signPlugin.password`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin-password)
+
### certificateChain
{#intellijPlatform-signing-certificateChain}
@@ -669,10 +736,15 @@ A string containing X509 certificates.
The first certificate from the chain will be used as a certificate authority (CA).
Refers to `cert` CLI option.
+Takes precedence over the [](#intellijPlatform-signing-certificateChainFile) property.
+
{style="narrow"}
Type
: `Property`
+See also:
+- [Tasks: `signPlugin.certificateChain`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin-certificateChain)
+
### certificateChainFile
{#intellijPlatform-signing-certificateChainFile}
@@ -685,9 +757,262 @@ Refers to `cert-file` CLI option.
Type
: `RegularFileProperty`
+See also:
+- [Tasks: `signPlugin.certificateChainFile`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin-certificateChainFile)
+
## Verify Plugin
{#intellijPlatform-verifyPlugin}
+IntelliJ Plugin Verifier CLI tool configuration.
+
+**Example:**
+
+```kotlin
+intellijPlatform {
+ // ...
+
+ verifyPlugin {
+ cliPath.set(file("/path/to/plugin-verifier-cli.jar"))
+ freeArgs.set(listOf("foo", "bar"))
+ homeDirectory.set(file("/path/to/pluginVerifierHomeDirectory/"))
+ downloadDirectory.set(file("/path/to/pluginVerifierHomeDirectory/ides/"))
+ failureLevel.set(VerifyPluginTask.FailureLevel.ALL)
+ verificationReportsDirectory.set("build/reports/pluginVerifier")
+ verificationReportsFormats.set(VerifyPluginTask.VerificationReportsFormats.ALL)
+ externalPrefixes.set("com.example")
+ teamCityOutputFormat.set(false)
+ subsystemsToCheck.set(VerifyPluginTask.Subsystems.ALL)
+ ignoredProblemsFile.set(file("/path/to/ignoredProblems.txt"))
+
+ ides {
+ // ...
+ }
+ }
+}
+```
+
+See also:
+- [](verifying_plugin_compatibility.md)
+- [Tasks: `verifyPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin)
+- [Task Awares: `PluginVerifierAware`](tools_intellij_platform_gradle_plugin_task_awares.md#PluginVerifierAware)
+- [](#intellijPlatform-verifyPlugin-ides)
+- [IntelliJ Plugin Verifier CLI](https://github.com/JetBrains/intellij-plugin-verifier)
+
+
+### cliPath
+{#intellijPlatform-verifyPlugin-cliPath}
+
+A path to the local IntelliJ Plugin Verifier CLI tool to be used.
+
+{style="narrow"}
+Type
+: `RegularFileProperty`
+
+See also:
+- [Task Awares: `PluginVerifierAware`](tools_intellij_platform_gradle_plugin_task_awares.md#PluginVerifierAware)
+
+
+### downloadDirectory
+{#intellijPlatform-verifyPlugin-downloadDirectory}
+
+The path to the directory where IDEs used for the verification will be downloaded.
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
+Default value
+: [`homeDirectory`](#intellijPlatform-verifyPlugin-homeDirectory)/ides
+
+
+### failureLevel
+{#intellijPlatform-verifyPlugin-failureLevel}
+
+Defines the verification level at which the task should fail if any reported issue matches.
+
+{style="narrow"}
+Type
+: `ListProperty`
+
+Default value
+: [`FailureLevel.COMPATIBILITY_PROBLEMS`](tools_intellij_platform_gradle_plugin_types.md#FailureLevel)
+
+See also:
+- [Tasks: `verifyPlugin.failureLevel`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin-failureLevel)
+
+
+### externalPrefixes
+{#intellijPlatform-verifyPlugin-externalPrefixes}
+
+The list of class prefixes from the external libraries.
+The Plugin Verifier will not report `No such class` for classes of these packages.
+
+{style="narrow"}
+Type
+: `ListProperty`
+
+See also:
+- [Tasks: `verifyPlugin.externalPrefixes`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin-externalPrefixes)
+
+
+### freeArgs
+{#intellijPlatform-verifyPlugin-freeArgs}
+
+The list of free arguments is passed directly to the IntelliJ Plugin Verifier CLI tool.
+
+They can be used in addition to the arguments that are provided by dedicated options.
+
+{style="narrow"}
+Type
+: `ListProperty`
+
+See also:
+- [Tasks: `verifyPlugin.freeArgs`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin-freeArgs)
+
+
+### homeDirectory
+{#intellijPlatform-verifyPlugin-homeDirectory}
+
+Retrieve the Plugin Verifier home directory used for storing downloaded IDEs.
+Following home directory resolving method is taken directly from the Plugin Verifier to keep the compatibility.
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
+Default value
+: - Directory specified with `plugin.verifier.home.dir` system property
+ - Directory specified with `XDG_CACHE_HOME` environment variable
+ - ~/.cache/pluginVerifier
+ - [buildDirectory]/tmp/pluginVerifier
+
+
+### ignoredProblemsFile
+{#intellijPlatform-verifyPlugin-ignoredProblemsFile}
+
+A file that contains a list of problems that will be ignored in a report.
+
+{style="narrow"}
+Type
+: `RegularFileProperty`
+
+See also:
+- [Tasks: `verifyPlugin.ignoredProblemsFile`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin-ignoredProblemsFile)
+
+
+### subsystemsToCheck
+{#intellijPlatform-verifyPlugin-subsystemsToCheck}
+
+Specifies which subsystems of IDE should be checked.
+
+{style="narrow"}
+Type
+: `Subsystems`
+
+Default value
+: [`Subsystems.ALL`](tools_intellij_platform_gradle_plugin_types.md#Subsystems)
+
+See also:
+- [Tasks: `verifyPlugin.subsystemsToCheck`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin-subsystemsToCheck)
+
+
+### teamCityOutputFormat
+{#intellijPlatform-verifyPlugin-teamCityOutputFormat}
+
+A flag that controls the output format.
+If set to `true`, the TeamCity compatible output will be returned to stdout.
+
+{style="narrow"}
+Type
+: `Property`
+
+Default value
+: `false`
+
+See also:
+- [Tasks: `verifyPlugin.teamCityOutputFormat`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin-teamCityOutputFormat)
+
+
+### verificationReportsDirectory
+{#intellijPlatform-verifyPlugin-verificationReportsDirectory}
+
+The path to the directory where verification reports will be saved.
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
+Default value
+: [buildDirectory]/reports/pluginVerifier
+
+See also:
+- [Tasks: `verifyPlugin.verificationReportsDirectory`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin-verificationReportsDirectory)
+
+
+### verificationReportsFormats
+{#intellijPlatform-verifyPlugin-verificationReportsFormats}
+
+The output formats of the verification reports.
+
+{style="narrow"}
+Type
+: `ListProperty`
+
+Default value
+: [`VerificationReportsFormats.PLAIN`](tools_intellij_platform_gradle_plugin_types.md#VerificationReportsFormats), [`FailureVerificationReportsFormats`](tools_intellij_platform_gradle_plugin_types.md#VerificationReportsFormats)
+
+See also:
+- [Tasks: `verifyPlugin.verificationReportsFormats`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin-verificationReportsFormats)
+
+
+## Verify Plugin IDEs
+{#intellijPlatform-verifyPlugin-ides}
+
+The extension to define the IDEs to be used along with the IntelliJ Plugin Verifier CLI tool for the binary plugin verification.
+
+It provides a set of helpers which add relevant entries to the configuration, which later is used to resolve IntelliJ-based IDE binary releases.
+
+**Example:**
+
+```kotlin
+import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType
+
+intellijPlatform {
+ // ...
+
+ verifyPlugin {
+ // ...
+
+ ides {
+ ide(IntelliJPlatformType.PhpStorm)
+ ide(IntelliJPlatformType.RustRover, "2023.3")
+ localIde(file("/path/to/ide/"))
+ recommended()
+ select {
+ types = listOf(IntelliJPlatformType.PhpStorm)
+ channels = listOf(ProductRelease.Channel.RELEASE)
+ sinceBuild = "232"
+ untilBuild = "241.*"
+ }
+ }
+ }
+}
+```
+
+See also:
+- [](verifying_plugin_compatibility.md)
+- [Tasks: `verifyPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin)
+- [Types: `IntelliJPlatformType`](tools_intellij_platform_gradle_plugin_types.md#IntelliJPlatformType)
+- [Types: `ProductRelease.Channel`](tools_intellij_platform_gradle_plugin_types.md#ProductRelease-Channel)
+- [Types: `ProductReleasesValueSource.FilterParameters`](tools_intellij_platform_gradle_plugin_types.md#ProductReleasesValueSource-FilterParameters)
+
+| Function | Description |
+|----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `ide(type, version)` `ide(definition)` | Adds a dependency to a binary IDE release to be used for testing with the IntelliJ Plugin Verifier. |
+| `localIde(localPath)` | Adds the local IDE to be used for testing with the IntelliJ Plugin Verifier. |
+| `recommended()` | Retrieves matching IDEs using the default configuration based on the currently used IntelliJ Platform and applies them for IntelliJ Platform Verifier using the `ide` helper method. |
+| `select(configure)` | Retrieves matching IDEs using custom [`ProductReleasesValueSource.FilterParameters`](tools_intellij_platform_gradle_plugin_types.md#ProductReleasesValueSource-FilterParameters) filter parameters. |
+
diff --git a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_task_awares.md b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_task_awares.md
index 303fa26cc..7ba3b0cc2 100644
--- a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_task_awares.md
+++ b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_task_awares.md
@@ -4,36 +4,284 @@
IntelliJ Platform Gradle Plugin task `*Aware` interfaces.
+The Task Awares is a set of interfaces that can be applied to custom Gradle tasks and, when registered using the dedicated register method, inject new features or properties with predefined values.
+
+
## CoroutinesJavaAgentAware
{#CoroutinesJavaAgentAware}
+The interface provides the path to the Java Agent file for the Coroutines library required to enable coroutines debugging.
+
+Inherited also by [`RunnableIdeAware`](#RunnableIdeAware).
+
+### coroutinesJavaAgentFile
+{#CoroutinesJavaAgentAware-coroutinesJavaAgentFile}
+
+The path to the coroutines Java Agent file.
+
+{style="narrow"}
+Type
+: `RegularFileProperty`
+
+Default value
+: [`initializeIntellijPlatformPlugin.coroutinesJavaAgent`](tools_intellij_platform_gradle_plugin_tasks.md#initializeIntelliJPlatformPlugin-coroutinesJavaAgent)
+
## CustomIntelliJPlatformVersionAware
{#CustomIntelliJPlatformVersionAware}
+By default, the project with the IntelliJ Platform Gradle Plugin applied required the presence of the IntelliJ Platform, referred to later by various tasks, configurations, and extensions.
+
+The custom IntelliJ Platform concept allows using another version, i.e., to run a guest IDE or tests against it.
+
+When applying this interface to the task, custom configurations to hold new dependencies defined by [`type`](#CustomIntelliJPlatformVersionAware-type) and [`version`](#CustomIntelliJPlatformVersionAware-version) (or [`localPath`](#CustomIntelliJPlatformVersionAware-localPath), if referring to the local IntelliJ Platform instance) are created, as well as a dedicated [`prepareSandbox`](tools_intellij_platform_gradle_plugin_tasks.md#prepareSandbox) task.
+
+Configurations, as well as the task preparing sandbox for running and testing the custom IntelliJ Platform (if required), have a random suffix applied to avoid collisions.
+
+
+### type
+{#CustomIntelliJPlatformVersionAware-type}
+
+An input property to configure the type of the custom IntelliJ Platform.
+
+By default, it refers to the IntelliJ Platform type used by the current project.
+
+{style="narrow"}
+Type
+: [`IntelliJPlatformType`](tools_intellij_platform_gradle_plugin_types.md#IntelliJPlatformType)
+
+
+### version
+{#CustomIntelliJPlatformVersionAware-version}
+
+An input property to configure the version of the custom IntelliJ Platform.
+
+By default, it refers to the IntelliJ Platform version used by the current project.
+
+{style="narrow"}
+Type
+: `Property`
+
+
+### localPath
+{#CustomIntelliJPlatformVersionAware-localPath}
+
+An input property to define the path to the local IntelliJ Platform instance to configure the version of the custom IntelliJ Platform.
+
+The local path precedes the IntelliJ Platform resolution using the [`type`](#CustomIntelliJPlatformVersionAware-type) and [`version`](#CustomIntelliJPlatformVersionAware-version) properties.
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
## IntelliJPlatformVersionAware
{#IntelliJPlatformVersionAware}
+This interface provides tasks a possibility for accessing information about the IntelliJ Platform currently used in the project.
+
+The [`intelliJPlatformConfiguration`](#IntelliJPlatformVersionAware-intelliJPlatformConfiguration) input property receives a dependency added to the `intellijPlatform` configuration, which eventually is resolved and lets to access the IntelliJ Platform details such as [`ProductInfo`](tools_intellij_platform_gradle_plugin_types.md#ProductInfo) or the path to the IntelliJ Platform directory.
+
+It is required to have a dependency on the IntelliJ Platform added to the project with helpers available in [](tools_intellij_platform_gradle_plugin_dependencies_extension.md).
+
+
+### intelliJPlatformConfiguration
+{#IntelliJPlatformVersionAware-intelliJPlatformConfiguration}
+
+Holds the `intellijPlatform` configuration with the IntelliJ Platform dependency added.
+
+It should not be directly accessed.
+
+{style="narrow"}
+Type
+: `ConfigurableFileCollection`
+
+
+### platformPath
+{#IntelliJPlatformVersionAware-platformPath}
+
+Provides a direct path to the IntelliJ Platform dependency artifact.
+
+{style="narrow"}
+Type
+: `Path`
+
+### productInfo
+{#IntelliJPlatformVersionAware-productInfo}
+
+Provides information about the IntelliJ Platform product.
+
+The information is retrieved from the product-info.json file in the IntelliJ Platform directory.
+
+{style="narrow"}
+Type
+: [`ProductInfo`](tools_intellij_platform_gradle_plugin_types.md#ProductInfo)
+
+
+### assertIntelliJPlatformSupportedVersion()
+{#IntelliJPlatformVersionAware-assertIntelliJPlatformSupportedVersion}
+
+Asserts that the resolved IntelliJ Platform is supported by checking against the minimal supported IntelliJ Platform version.
+
+Invokes [`ProductInfo.assertSupportedVersion()`](tools_intellij_platform_gradle_plugin_types.md#ProductInfo-assertSupportedVersion).
+
+{style="narrow"}
+Throws
+: `IllegalArgumentException`
+
## PluginVerifierAware
{#PluginVerifierAware}
+The interface provides the path to the IntelliJ Plugin Verifier executable.
+
+It is required to have a dependency on the IntelliJ Plugin Verifier added to the project with [`intellijPlatform.pluginVerifier()`](tools_intellij_platform_gradle_plugin_dependencies_extension.md) dependencies extension.
+
+
+### pluginVerifierExecutable
+{#PluginVerifierAware-pluginVerifierExecutable}
+
+Path to the IntelliJ Plugin Verifier executable.
+
+{style="narrow"}
+Type
+: `RegularFileProperty`
+
## RunnableIdeAware
{#RunnableIdeAware}
+The interface which utilizes a set of various interfaces required for running a guest IDE. Inherits from:
+- [`CoroutinesJavaAgentAware`](#CoroutinesJavaAgentAware)
+- [`RuntimeAware`](#RuntimeAware)
+- [`SandboxAware`](#SandboxAware)
+- `JavaForkOptions`
+
## RuntimeAware
{#RuntimeAware}
+This interface provides access to the Java Runtime (i.e., JetBrains Runtime) resolved with `RuntimeResolver`.
+
+### runtimeDirectory
+{#RuntimeAware-runtimeDirectory}
+
+Java Runtime parent directory.
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
+
+### runtimeExecutable
+{#RuntimeAware-runtimeExecutable}
+
+Path to the Java Runtime executable.
+
+{style="narrow"}
+Type
+: `RegularFileProperty`
+
+
+### runtimeArch
+{#RuntimeAware-runtimeArch}
+
+An architecture of the Java Runtime currently used for running Gradle.
+
+{style="narrow"}
+Type
+: `Property`
+
+
## SandboxAware
{#SandboxAware}
+The interface provides quick access to the sandbox container and specific directories located within it.
+
+The path to the sandbox container is obtained using the [`intellijPlatform.sandboxContainer`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-sandboxContainer) extension property and the type and version of the IntelliJ Platform applied to the project.
+
+Paths respect custom IntelliJ Platform when combined with [`CustomIntelliJPlatformVersionAware`](#CustomIntelliJPlatformVersionAware).
+
+
+### sandboxSuffix
+{#SandboxAware-sandboxSuffix}
+
+Represents the suffix used i.e., for test-related tasks.
+
+{style="narrow"}
+Type
+: `Property`
+
+
+### sandboxContainerDirectory
+{#SandboxAware-sandboxContainerDirectory}
+
+The container for all sandbox-related directories.
+
+The directory name depends on the platform type and version currently used for running a task.
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
+
+### sandboxConfigDirectory
+{#SandboxAware-sandboxConfigDirectory}
+
+A configuration directory located within the [`sandboxContainerDirectory`](#SandboxAware-sandboxContainerDirectory).
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
+
+### sandboxPluginsDirectory
+{#SandboxAware-sandboxPluginsDirectory}
+
+A plugins directory located within the [`sandboxContainerDirectory`](#SandboxAware-sandboxContainerDirectory).
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
+
+### sandboxSystemDirectory
+{#SandboxAware-sandboxSystemDirectory}
+
+A system directory located within the [`sandboxContainerDirectory`](#SandboxAware-sandboxContainerDirectory).
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
+
+### sandboxLogDirectory
+{#SandboxAware-sandboxLogDirectory}
+
+A log directory located within the [`sandboxContainerDirectory`](#SandboxAware-sandboxContainerDirectory).
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
## SigningAware
{#SigningAware}
+The interface provides the path to the Marketplace ZIP Signer executable.
+
+It is required to have a dependency on the Marketplace ZIP Signer added to the project with [`intellijPlatform.zipSigner()`](tools_intellij_platform_gradle_plugin_dependencies_extension.md) dependencies extension.
+
+
+### zipSignerExecutable
+{#SigningAware-zipSignerExecutable}
+
+Path to the Marketplace ZIP Signer executable.
+
+{style="narrow"}
+Type
+: `RegularFileProperty`
+
diff --git a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_tasks.md b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_tasks.md
index 0cd525d1f..073eeca86 100644
--- a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_tasks.md
+++ b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_tasks.md
@@ -7,6 +7,34 @@
## buildPlugin
{#buildPlugin}
+This class represents a task for building a plugin and preparing a ZIP archive for deployment.
+
+It uses the content produced by [`prepareSandbox`](#prepareSandbox) and [`jarSearchableOptions`](#jarSearchableOptions) tasks as an input.
+
+
+### archiveBaseName
+{#buildPlugin-archiveBaseName}
+
+{style="narrow"}
+Type
+: `Property`
+
+Default value
+: [`prepareSandbox.pluginName`](#prepareSandbox-pluginName)
+
+
+### archiveFile
+{#buildPlugin-archiveFile}
+
+The archive file which represents the output file produced by the task.
+
+{style="narrow"}
+Type
+: `RegularFileProperty`
+
+Default value
+: [`buildPlugin.archiveFile`](#buildPlugin-archiveFile)
+
## buildSearchableOptions
{#buildSearchableOptions}
@@ -27,6 +55,76 @@ See also:
## initializeIntelliJPlatformPlugin
{#initializeIntelliJPlatformPlugin}
+Initializes the IntelliJ Platform Gradle Plugin and performs various checks, like if the plugin is up-to-date.
+
+### offline
+{#initializeIntelliJPlatformPlugin-offline}
+
+Determines if the operation is running in offline mode.
+
+Depends on Gradle start parameters
+
+{style="narrow"}
+Type
+: `Property`
+
+Default value
+: `StartParameter.isOffline`
+
+See also:
+- [StartParameter](https://docs.gradle.org/current/javadoc/org/gradle/StartParameter.html)
+- [Command Line Execution Options](https://docs.gradle.org/current/userguide/command_line_interface.html#sec:command_line_execution_options)
+
+
+### selfUpdateCheck
+{#initializeIntelliJPlatformPlugin-selfUpdateCheck}
+
+Represents the property for checking if self-update is enabled.
+
+{style="narrow"}
+Type
+: `Property`
+
+Default value
+: [Build Features: `selfUpdateCheck`](tools_intellij_platform_gradle_plugin_build_features.md#selfUpdateCheck)
+
+
+### selfUpdateLock
+{#initializeIntelliJPlatformPlugin-selfUpdateLock}
+
+Represents a lock file used to limit the plugin version checks in time.
+If a file is absent, and other conditions are met, the version check is performed.
+
+{style="narrow"}
+Type
+: `RegularFileProperty`
+
+
+### coroutinesJavaAgent
+{#initializeIntelliJPlatformPlugin-coroutinesJavaAgent}
+
+Java Agent file for the Coroutines library, which is required to enable coroutines debugging.
+
+{style="narrow"}
+Type
+: `Property`
+
+Default value
+: `[buildDirectory]/tmp/initializeIntelliJPlatformPlugin/coroutines-javaagent.jar`
+
+See also:
+- [Task Awares: `CoroutinesJavaAgentAware`](tools_intellij_platform_gradle_plugin_task_awares.md#CoroutinesJavaAgentAware)
+
+
+### pluginVersion
+{#initializeIntelliJPlatformPlugin-pluginVersion}
+
+Represents the current version of the plugin.
+
+{style="narrow"}
+Type
+: `Property`
+
## instrumentCode
{#instrumentCode}
@@ -82,7 +180,7 @@ Type
: `RegularFileProperty`
Default value
-: build/tmp/patchPluginXml/plugin.xml
+: [buildDirectory]/tmp/patchPluginXml/plugin.xml
### pluginId
{#patchPluginXml-pluginId}
@@ -104,7 +202,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.id`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-id)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.id`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-id)
- [Plugin Configuration File: `id`](plugin_configuration_file.md#idea-plugin__id)
@@ -123,7 +220,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.name`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-name)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.name`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-name)
- [Plugin Configuration File: `name`](plugin_configuration_file.md#idea-plugin__name)
@@ -144,7 +240,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.version`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-version)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.version`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-version)
- [Plugin Configuration File: `version`](plugin_configuration_file.md#idea-plugin__version)
@@ -166,7 +261,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.description`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-description)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.description`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-description)
- [Plugin Configuration File: `description`](plugin_configuration_file.md#idea-plugin__description)
@@ -189,7 +283,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.changeNotes`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-changeNotes)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.changeNotes`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-changeNotes)
- [Plugin Configuration File: `change-notes`](plugin_configuration_file.md#idea-plugin__change-notes)
@@ -209,7 +302,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.productDescriptor.code`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-productDescriptor-code)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.productDescriptor.code`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-productDescriptor-code)
- [Plugin Configuration File: `product-descriptor`](plugin_configuration_file.md#idea-plugin__product-descriptor)
@@ -228,7 +320,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.productDescriptor.releaseDate`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-productDescriptor-releaseDate)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.productDescriptor.releaseDate`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-productDescriptor-releaseDate)
- [Plugin Configuration File: `product-descriptor`](plugin_configuration_file.md#idea-plugin__product-descriptor)
@@ -247,7 +338,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.productDescriptor.releaseVersion`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-productDescriptor-releaseVersion)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.productDescriptor.releaseVersion`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-productDescriptor-releaseVersion)
- [Plugin Configuration File: `product-descriptor`](plugin_configuration_file.md#idea-plugin__product-descriptor)
@@ -269,7 +359,6 @@ Default value
: `false`
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.productDescriptor.optional`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-productDescriptor-optional)
- [Plugin Configuration File: `product-descriptor`](plugin_configuration_file.md#idea-plugin__product-descriptor)
@@ -288,7 +377,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.ideaVersion.sinceBuild`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-ideaVersion-sinceBuild)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.ideaVersion.sinceBuild`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-ideaVersion-sinceBuild)
- [Plugin Configuration File: `idea-version`](plugin_configuration_file.md#idea-plugin__idea-version)
@@ -308,7 +396,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.ideaVersion.untilBuild`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-ideaVersion-untilBuild)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.ideaVersion.untilBuild`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-ideaVersion-untilBuild)
- [Plugin Configuration File: `idea-version`](plugin_configuration_file.md#idea-plugin__idea-version)
@@ -327,7 +414,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.vendor.name`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-vendor-name)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.vendor.name`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-vendor-name)
- [Plugin Configuration File: `vendor`](plugin_configuration_file.md#idea-plugin__vendor)
@@ -346,7 +432,6 @@ Default value
: [`intellijPlatform.pluginConfiguration.vendor.email`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-vendor-email)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.vendor.email`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-vendor-email)
- [Plugin Configuration File: `vendor`](plugin_configuration_file.md#idea-plugin__vendor)
@@ -365,16 +450,86 @@ Default value
: [`intellijPlatform.pluginConfiguration.vendor.url`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-vendor-url)
See also:
-- [Extension: `intellijPlatform.pluginConfiguration.vendor.url`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-vendor-url)
- [Plugin Configuration File: `vendor`](plugin_configuration_file.md#idea-plugin__vendor)
## prepareSandbox
{#prepareSandbox}
+Prepares a sandbox environment with the installed plugin and its dependencies.
+
+The sandbox directory is required to run a guest IDE and tests in isolation from other instances, like when multiple IntelliJ Platforms are used for testing with [`runIde`](#runIde), [`testIde`](#testIde), [`testIdeUi`](#testIdeUi), or [`testIdePerformance`](#testIdePerformance) tasks.
+
+To fully utilize the sandbox capabilities in a task, make it extend the [`SandboxAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxAware) interface.
+
See also:
- [Extension: `intellijPlatform.sandboxContainer`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-sandboxContainer)
-- [Task Awares: `SandboxAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxAware)
+
+
+### defaultDestinationDirectory
+{#prepareSandbox-defaultDestinationDirectory}
+
+Default sandbox destination directory to where the plugin files will be copied into.
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
+Default value
+: [`SandboxAware.sandboxPluginsDirectory`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxAware-sandboxPluginsDirectory)
+
+
+### pluginName
+{#prepareSandbox-pluginName}
+
+The name of the plugin.
+
+{style="narrow"}
+Type
+: `String`
+
+Default value
+: [`intellijPlatform.pluginConfiguration.name`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration-name)
+
+
+### pluginJar
+{#prepareSandbox-pluginJar}
+
+The output of `Jar` task.
+The proper `Jar.archiveFile` is picked depending on if code instrumentation is enabled.
+
+{style="narrow"}
+Type
+: `RegularFileProperty`
+
+Default value
+: `Jar.archiveFile`
+
+See also:
+- [Extension: `intellijPlatform.instrumentCode`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-instrumentCode)
+
+
+### pluginsClasspath
+{#prepareSandbox-pluginsClasspath}
+
+List of dependencies on external plugins resolved from the `intellijPlatformPluginsExtracted` configuration.
+
+{style="narrow"}
+Type
+: `ConfigurableFileCollection`
+
+See also:
+- [Dependencies Extension](tools_intellij_platform_gradle_plugin_dependencies_extension.md)
+
+
+### runtimeClasspath
+{#prepareSandbox-runtimeClasspath}
+
+Dependencies removed with the `runtimeClasspath` configuration.
+
+{style="narrow"}
+Type
+: `ConfigurableFileCollection`
## printBundledPlugins
@@ -401,19 +556,17 @@ See also:
ZIP archive to be published to the remote repository.
-By default, it uses an output `archiveFile` of the [`signPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin) task if plugin signing is configured, otherwise [`buildPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#buildPlugin).
+By default, it uses an output `archiveFile` of the [`signPlugin`](#signPlugin) task if plugin signing is configured, otherwise [`buildPlugin`](#buildPlugin).
{style="narrow"}
Type
-: `Property`
+: `RegularFileProperty`
Default value
-: [`signPlugin.archiveFile`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin-archiveFile) or [`buildPlugin.archiveFile`](tools_intellij_platform_gradle_plugin_tasks.md#buildPlugin-archiveFile)
+: [`signPlugin.archiveFile`](#signPlugin-archiveFile) or [`buildPlugin.archiveFile`](#buildPlugin-archiveFile)
See also:
- [Extension: `intellijPlatform.signing`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing)
-- [Tasks: `signPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin)
-- [Tasks: `buildPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#buildPlugin)
### host
@@ -428,9 +581,6 @@ Type
Default value
: [`intellijPlatform.publishing.host`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-publishing-host)
-See also:
-- [Extension `intellijPlatform.publishing.host`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-publishing-host)
-
### token
{#publishPlugin-token}
@@ -447,9 +597,6 @@ Required
Default value
: [`intellijPlatform.publishing.token`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-publishing-token)
-See also:
-- [Extension: `intellijPlatform.publishing.token`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-publishing-token)
-
### channel
{#publishPlugin-channel}
@@ -463,9 +610,6 @@ Type
Default value
: [`intellijPlatform.publishing.channel`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-publishing-channel)
-See also:
-- [Extension: `intellijPlatform.publishing.channel`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-publishing-channel)
-
### hidden
{#publishPlugin-hidden}
@@ -480,7 +624,6 @@ Default value
: [`intellijPlatform.publishing.hidden`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-publishing-hidden)
See also:
-- [Extension: `intellijPlatform.publishing.hidden`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-publishing-hidden)
- [Hidden release](https://plugins.jetbrains.com/docs/marketplace/hidden-plugin.html)
@@ -496,12 +639,6 @@ Type
Default value
: [`intellijPlatform.publishing.toolboxEnterprise`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-publishing-toolboxEnterprise)
-See also:
-- [Extension: `intellijPlatform.publishing.toolboxEnterprise`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-publishing-toolboxEnterprise)
-
-
-## runIdePerformanceTest
-{#runIdePerformanceTest}
> Not implemented.
>
@@ -523,11 +660,11 @@ See also:
## signPlugin
{#signPlugin}
-Signs the ZIP archive with the provided key using [Marketplace ZIP Signer](https://github.com/JetBrains/marketplace-zip-signer) library.
+Signs the ZIP archive with the provided key using the [Marketplace ZIP Signer](https://github.com/JetBrains/marketplace-zip-signer) library.
-To sign the plugin before publishing to [JetBrains Marketplace](https://plugins.jetbrains.com) with the [SignPluginTask] task, it is required to provide a certificate chain and a private key with its password using `signPlugin { ... }` Plugin Signing DSL.
+To sign the plugin before publishing to [JetBrains Marketplace](https://plugins.jetbrains.com) with the [`signPlugin`](#signPlugin) task, it is required to provide a certificate chain and a private key with its password using [`intellijPlatform.signing`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing) extension.
-As soon as [privateKey] (or [privateKeyFile]) and [certificateChain] (or [certificateChainFile]) properties are specified, the task will be executed automatically right before the [PublishPluginTask] task.
+As soon as [`privateKey`](#signPlugin-privateKey) (or [`privateKeyFile`](#signPlugin-privateKeyFile)) and [`certificateChain`](#signPlugin-certificateChain) (or [`certificateChainFile`](#signPlugin-certificateChainFile) properties are specified, the task will be executed automatically right before the [`publishPlugin`](#publishPlugin) task.
For more details, see [Plugin Signing](https://plugins.jetbrains.com/docs/intellij/plugin-signing.html) article.
@@ -547,9 +684,6 @@ Type
Default value
: [`buildPlugin.archiveFile`](#buildPlugin-archiveFile)
-See also:
-- [Tasks: `buildPlugin.archiveFile`](#buildPlugin-archiveFile)
-
### signedArchiveFile
{#signPlugin-signedArchiveFile}
@@ -581,9 +715,6 @@ Type
Default value
: [`intellijPlatform.signing.keyStore`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-keyStore)
-See also:
-- [Extension: `intellijPlatform.signing.keyStore`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-keyStore)
-
### keyStorePassword
{#signPlugin-keyStorePassword}
@@ -598,9 +729,6 @@ Type
Default value
: [`intellijPlatform.signing.keyStorePassword`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-keyStorePassword)
-See also:
-- [Extension: `intellijPlatform.signing.keyStorePassword`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-keyStorePassword)
-
### keyStoreKeyAlias
{#signPlugin-keyStoreKeyAlias}
@@ -615,9 +743,6 @@ Type
Default value
: [`intellijPlatform.signing.keyStoreKeyAlias`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-keyStoreKeyAlias)
-See also:
-- [Extension: `intellijPlatform.signing.keyStoreKeyAlias`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-keyStoreKeyAlias)
-
### keyStoreType
{#signPlugin-keyStoreType}
@@ -632,9 +757,6 @@ Type
Default value
: [`intellijPlatform.signing.keyStoreType`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-keyStoreType)
-See also:
-- [Extension: `intellijPlatform.signing.keyStoreType`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-keyStoreType)
-
### keyStoreProviderName
{#signPlugin-keyStoreProviderName}
@@ -649,9 +771,6 @@ Type
Default value
: [`intellijPlatform.signing.keyStoreProviderName`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-keyStoreProviderName)
-See also:
-- [Extension: `intellijPlatform.signing.keyStoreProviderName`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-keyStoreProviderName)
-
### privateKey
{#signPlugin-privateKey}
@@ -666,9 +785,6 @@ Type
Default value
: [`intellijPlatform.signing.privateKey`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-privateKey)
-See also:
-- [Extension: `intellijPlatform.signing.privateKey`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-privateKey)
-
### privateKeyFile
{#signPlugin-privateKeyFile}
@@ -683,9 +799,6 @@ Type
Default value
: [`intellijPlatform.signing.privateKeyFile`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-privateKeyFile)
-See also:
-- [Extension: `intellijPlatform.signing.privateKeyFile`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-privateKeyFile)
-
### password
{#signPlugin-password}
@@ -700,9 +813,6 @@ Type
Default value
: [`intellijPlatform.signing.password`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-password)
-See also:
-- [Extension: `intellijPlatform.signing.password`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-password)
-
### certificateChain
{#signPlugin-certificateChain}
@@ -718,9 +828,6 @@ Type
Default value
: [`intellijPlatform.signing.certificateChain`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-certificateChain)
-See also:
-- [Extension: `intellijPlatform.signing.certificateChain`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-certificateChain)
-
### certificateChainFile
{#signPlugin-certificateChainFile}
@@ -736,14 +843,19 @@ Type
Default value
: [`intellijPlatform.signing.certificateChainFile`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-certificateChainFile)
-See also:
-- [Extension: `intellijPlatform.signing.certificateChainFile`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-signing-certificateChainFile)
-
## testIde
{#testIde}
+## testIdePerformance
+{#testIdePerformance}
+
+> Not implemented.
+>
+{style="warning"}
+
+
## testIdeUi
{#testIdeUi}
@@ -767,5 +879,169 @@ See also:
## verifyPlugin
{#verifyPlugin}
+Runs the IntelliJ Plugin Verifier CLI tool to check the binary compatibility with specified IDE builds.
+
+See also:
+- [Awares: `PluginVerifierAware`](tools_intellij_platform_gradle_plugin_task_awares.md#PluginVerifierAware)
+- [Extension: `intellijPlatform.verifyPlugin`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin)
+- [Types: `FailureLevel`](tools_intellij_platform_gradle_plugin_types.md#FailureLevel)
+- [Types: `Subsystems`](tools_intellij_platform_gradle_plugin_types.md#Subsystems)
+- [Types: `VerificationReportsFormats`](tools_intellij_platform_gradle_plugin_types.md#VerificationReportsFormats)
+- [IntelliJ Plugin Verifier](https://github.com/JetBrains/intellij-plugin-verifier)
+- [Verifying Plugin Compatibility](https://plugins.jetbrains.com/docs/intellij/verifying-plugin-compatibility.html)
+
+
+### ides
+{#verifyPlugin-ides}
+
+Holds a reference to IntelliJ Platform IDEs which will be used by the IntelliJ Plugin Verifier CLI tool for the binary plugin verification.
+
+The list of IDEs is controlled with the [`intellijPlatform.verifyPlugin.ides`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-ides) extension.
+
+{style="narrow"}
+Type
+: `ConfigurableFileCollection`
+
+
+### archiveFile
+{#verifyPlugin-archiveFile}
+
+Input ZIP archive file of the plugin to verify.
+If empty, the task will be skipped.
+
+{style="narrow"}
+Type
+: `RegularFileProperty`
+
+Default value
+: [`buildPlugin.archiveFile`](#buildPlugin-archiveFile)
+
+
+### externalPrefixes
+{#verifyPlugin-externalPrefixes}
+
+The list of class prefixes from the external libraries.
+The Plugin Verifier will not report `No such class` for classes of these packages.
+
+{style="narrow"}
+Type
+: `ListProperty`
+
+Default value
+: [`intellijPlatform.verifyPlugin.externalPrefixes`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-externalPrefixes)
+
+
+### failureLevel
+{#verifyPlugin-failureLevel}
+
+Defines the verification level at which the task should fail if any reported issue matches.
+
+{style="narrow"}
+Type
+: [`ListProperty`](tools_intellij_platform_gradle_plugin_types.md#FailureLevel)
+
+Default value
+: [`intellijPlatform.verifyPlugin.failureLevel`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-failureLevel)
+
+
+### freeArgs
+{#verifyPlugin-freeArgs}
+
+The list of free arguments is passed directly to the IntelliJ Plugin Verifier CLI tool.
+
+They can be used in addition to the arguments that are provided by dedicated options.
+
+{style="narrow"}
+Type
+: `ListProperty`
+
+Default value
+: [`intellijPlatform.verifyPlugin.freeArgs`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-freeArgs)
+
+
+### ignoredProblemsFile
+{#verifyPlugin-ignoredProblemsFile}
+
+A file that contains a list of problems that will be ignored in a report.
+
+{style="narrow"}
+Type
+: `RegularFileProperty`
+
+Default value
+: [`intellijPlatform.verifyPlugin.ignoredProblemsFile`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-ignoredProblemsFile)
+
+
+### offline
+{#verifyPlugin-offline}
+
+Determines if the operation is running in offline mode.
+
+Depends on Gradle start parameters
+
+{style="narrow"}
+Type
+: `Property`
+
+Default value
+: `StartParameter.isOffline`
+
+See also:
+- [StartParameter](https://docs.gradle.org/current/javadoc/org/gradle/StartParameter.html)
+- [Command Line Execution Options](https://docs.gradle.org/current/userguide/command_line_interface.html#sec:command_line_execution_options)
+
+
+### subsystemsToCheck
+{#verifyPlugin-subsystemsToCheck}
+
+Specifies which subsystems of IDE should be checked.
+
+{style="narrow"}
+Type
+: [`Subsystems`](tools_intellij_platform_gradle_plugin_types.md#Subsystems)
+
+Default value
+: [`intellijPlatform.verifyPlugin.subsystemsToCheck`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-subsystemsToCheck)
+
+
+### teamCityOutputFormat
+{#verifyPlugin-teamCityOutputFormat}
+
+A flag that controls the output format.
+If set to `true`, the TeamCity compatible output will be returned to stdout.
+
+{style="narrow"}
+Type
+: `Property`
+
+Default value
+: [`intellijPlatform.verifyPlugin.teamCityOutputFormat`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-teamCityOutputFormat)
+
+
+### verificationReportsDirectory
+{#verifyPlugin-verificationReportsDirectory}
+
+The path to the directory where verification reports will be saved.
+
+{style="narrow"}
+Type
+: `DirectoryProperty`
+
+Default value
+: [`intellijPlatform.verifyPlugin.verificationReportsDirectory`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-verificationReportsDirectory)
+
+
+### verificationReportsFormats
+{#verifyPlugin-verificationReportsFormats}
+
+The output formats of the verification reports.
+
+{style="narrow"}
+Type
+: [`ListProperty`](tools_intellij_platform_gradle_plugin_types.md#VerificationReportsFormats)
+
+Default value
+: [`intellijPlatform.verifyPlugin.verificationReportsFormats`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-verificationReportsFormats)
+
diff --git a/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_types.md b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_types.md
new file mode 100644
index 000000000..79f979dd1
--- /dev/null
+++ b/topics/appendix/tools/intellij_platform_gradle_plugin/tools_intellij_platform_gradle_plugin_types.md
@@ -0,0 +1,189 @@
+
+
+# Types
+
+IntelliJ Platform Gradle Plugin data types, enums, and constants.
+
+## FailureLevel
+{#FailureLevel}
+
+```
+org.jetbrains.intellij.platform.gradle.tasks.VerifyPluginTask.FailureLevel
+```
+
+Enum class describing the failure level of the IntelliJ Plugin Verifier CLI tool run with the [`verifyPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin) task.
+
+| Name | Description |
+|------------------------------------|-------------------------------------------------------------------------------------|
+| `COMPATIBILITY_WARNINGS` | Compatibility warnings detected against the specified IDE version. |
+| `COMPATIBILITY_PROBLEMS` | Compatibility problems detected against the specified IDE version. |
+| `DEPRECATED_API_USAGES` | Plugin uses API marked as deprecated (`@Deprecated`). |
+| `SCHEDULED_FOR_REMOVAL_API_USAGES` | Plugin uses API marked as scheduled for removal (`ApiStatus.@ScheduledForRemoval`). |
+| `EXPERIMENTAL_API_USAGES` | Plugin uses API marked as experimental (`ApiStatus.@Experimental`). |
+| `INTERNAL_API_USAGES` | Plugin uses API marked as internal (`ApiStatus.@Internal`). |
+| `OVERRIDE_ONLY_API_USAGES` | Override-only API is used incorrectly (`ApiStatus.@OverrideOnly`). |
+| `NON_EXTENDABLE_API_USAGES` | Non-extendable API is used incorrectly (`ApiStatus.@NonExtendable`). |
+| `PLUGIN_STRUCTURE_WARNINGS` | The structure of the plugin is not valid. |
+| `MISSING_DEPENDENCIES` | Plugin has some dependencies missing. |
+| `INVALID_PLUGIN` | Provided plugin artifact is not valid. |
+| `NOT_DYNAMIC` | Plugin probably cannot be enabled or disabled without IDE restart |
+| `ALL` | Contains all possible options. |
+| `NONE` | Contains no option. |
+
+See also:
+- [Extension: `intellijPlatform.verifyPlugin.failureLevel`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-failureLevel)
+- [Tasks: `verifyPlugin.failureLevel`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin-failureLevel)
+
+
+## IntelliJPlatformType
+{#IntelliJPlatformType}
+
+```
+org.jetbrains.intellij.platform.gradle.IntelliJPlatformType
+```
+
+Describes all IntelliJ Platform types available to be used for plugin development, dependency resolution, and plugin verification.
+
+Each entry is composed of a product code name and coordinates used for dependency and binary release resolution.
+
+| Name | Code | Coordinates |
+|-------------------------|--------|----------------------------------------------------|
+| `AndroidStudio` | `AI` | `com.google.android.studio:studio` |
+| `CLion` | `CL` | `com.jetbrains.intellij.clion:clion` |
+| `Fleet` | `FLIJ` | `com.jetbrains.intellij.fleetBackend:fleetBackend` |
+| `Gateway` | `GW` | `com.jetbrains.intellij.gateway:gateway` |
+| `GoLand` | `GO` | `com.jetbrains.intellij.goland:goland` |
+| `IntellijIdeaCommunity` | `IC` | `com.jetbrains.intellij.idea:ideaIC` |
+| `IntellijIdeaUltimate` | `IU` | `com.jetbrains.intellij.idea:ideaIU` |
+| `PhpStorm` | `PS` | `com.jetbrains.intellij.phpstorm:phpstorm` |
+| `PyCharmProfessional` | `PY` | `com.jetbrains.intellij.pycharm:pycharmPY` |
+| `PyCharmCommunity` | `PC` | `com.jetbrains.intellij.pycharm:pycharmPC` |
+| `Rider` | `RD` | `com.jetbrains.intellij.rider:riderRD` |
+| `RustRover` | `RR` | `com.jetbrains.intellij.rustrover:RustRover` |
+| `Writerside` | `WRS` | `com.jetbrains.intellij.idea:writerside` |
+
+
+## ProductInfo
+{#ProductInfo}
+
+Represents information about the IntelliJ Platform product.
+
+The information is retrieved from the product-info.json file in the IntelliJ Platform directory.
+
+| Name | Description |
+|-------------------|--------------------------------------------------------------------------|
+| name | The product's name, like "IntelliJ IDEA". |
+| version | The marketing version of the product, like "2023.2". |
+| versionSuffix | The suffix of the version, like "EAP". |
+| buildNumber | The build number of the product, like "232.8660.185". |
+| productCode | The product code, like "IU". |
+| dataDirectoryName | The directory name of the product data. |
+| svgIconPath | The path to the SVG icon of the product. |
+| productVendor | The vendor of the product. |
+| launch | The list of OS- and arch-specific launch configurations for the product. |
+| customProperties | The list of custom properties of the product. |
+| bundledPlugins | The list of bundled plugins provided with the current release. |
+| fileExtensions | The list of file extensions associated with the product. |
+| modules | The list of modules of the product. |
+
+### assertSupportedVersion()
+{#ProductInfo-assertSupportedVersion}
+
+Asserts that the resolved IntelliJ Platform is supported by checking against the minimal supported IntelliJ Platform version.
+
+If the provided version is lower, an `IllegalArgumentException` is thrown with an appropriate message.
+
+{style="narrow"}
+Throws
+: `IllegalArgumentException`
+
+
+## ProductRelease.Channel
+{#ProductRelease-Channel}
+
+```
+org.jetbrains.intellij.platform.gradle.model.ProductRelease
+```
+
+List of available channels used by JetBrains IDEs and Android Studio for describing binary releases.
+
+| Name | JetBrains IDEs | Android Studio |
+|-------------|:--------------:|:--------------:|
+| `EAP` | X | |
+| `MILESTONE` | | X |
+| `BETA` | | X |
+| `RELEASE` | X | X |
+| `CANARY` | | X |
+| `PATCH` | | X |
+| `RC` | | X |
+| `PREVIEW` | | X |
+
+See also:
+- [Extension: `intellijPlatform.verifyPlugin.ides`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-ides)
+- [Tasks: `printProductsReleases`](tools_intellij_platform_gradle_plugin_tasks.md#printProductsReleases)
+
+
+## ProductReleasesValueSource.FilterParameters
+{#ProductReleasesValueSource-FilterParameters}
+
+```
+org.jetbrains.intellij.platform.gradle.provider.ProductReleasesValueSource
+```
+
+Interface that provides a clear way to filter binary product releases for the purposes of IntelliJ Plugin Verifier.
+
+| Name | Description |
+|--------------|------------------------------------------------------------------------------------------------------|
+| `sinceBuild` | Build number from which the binary IDE releases will be matched. |
+| `untilBuild` | Build number until which the binary IDE releases will be matched. |
+| `types` | A list of [`IntelliJPlatformType`](#IntelliJPlatformType) types to match. |
+| `channels` | A list of [`ProductRelease.Channel`](#ProductRelease-Channel) types of binary releases to search in. |
+
+See also:
+- [Extension: `intellijPlatform.verifyPlugin.ides`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-ides)
+- [Tasks: `printProductsReleases`](tools_intellij_platform_gradle_plugin_tasks.md#printProductsReleases)
+
+
+## Subsystems
+{#Subsystems}
+
+```
+org.jetbrains.intellij.platform.gradle.tasks.VerifyPluginTask.Subsystems
+```
+
+Specifies which subsystems of IDE should be checked by the IntelliJ Plugin Verifier CLI tool run with the [`verifyPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin) task.
+
+| Name | Description |
+|-------------------|----------------------------------------------|
+| `ALL` | Verify all code. |
+| `ANDROID_ONLY` | Verify only code related to Android support. |
+| `WITHOUT_ANDROID` | Exclude problems related to Android support. |
+
+See also:
+- [Extension: `intellijPlatform.verifyPlugin.subsystemsToCheck`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-subsystemsToCheck)
+- [Tasks: `verifyPlugin.subsystemsToCheck`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin-subsystemsToCheck)
+
+
+## VerificationReportsFormats
+{#VerificationReportsFormats}
+
+```
+org.jetbrains.intellij.platform.gradle.tasks.VerifyPluginTask.VerificationReportsFormats
+```
+
+Enum class describing the type of the results produced by the IntelliJ Plugin Verifier CLI tool run with the [`verifyPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin) task.
+
+| Name | Description |
+|------------|--------------------------------|
+| `PLAIN` | Plain text file. |
+| `HTML` | HTML formatted output file. |
+| `MARKDOWN` | Markdown file. |
+| `ALL` | Contains all possible options. |
+| `NONE` | Contains no option. |
+
+See also:
+- [Extension: `intellijPlatform.verifyPlugin.verificationReportsFormats`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-verifyPlugin-verificationReportsFormats)
+- [Tasks: `verifyPlugin.verificationReportsFormats`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin-verificationReportsFormats)
+
+
+