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) + + +