verifying_plugin_compatibility.md: cleanup

This commit is contained in:
Yann Cébron 2025-04-24 15:21:11 +02:00
parent 83430ed899
commit 866af0d988

View File

@ -26,9 +26,11 @@ See also [](build_number_ranges.md#multipleIDEVersions).
</tldr> </tldr>
Plugin Verifier checks the binary compatibility between IntelliJ-based IDE builds and IntelliJ Platform plugins.
### Using with Gradle ### Using with Gradle
Integration in [Gradle build](creating_plugin_project.md) is available out-of-the box via dedicated Gradle tasks. Integration in [Gradle build](creating_plugin_project.md) is available out-of-the box via a dedicated Gradle task.
<tabs> <tabs>
<tab title="IntelliJ Platform Gradle Plugin (2.x)"> <tab title="IntelliJ Platform Gradle Plugin (2.x)">
@ -44,11 +46,12 @@ Use [`runPluginVerifier`](tools_gradle_intellij_plugin.md#tasks-runpluginverifie
</tabs> </tabs>
Integration with Continuous Integration (CI) environments is as simple as running the corresponding Gradle task as another quality check step. Integration with Continuous Integration (CI) environments is as simple as running the corresponding Gradle task as another quality check step.
See the IntelliJ Platform Plugin Template [GitHub workflow configuration file](https://github.com/JetBrains/intellij-platform-plugin-template/blob/main/.github/workflows/build.yml) as reference. See the IntelliJ Platform Plugin Template [GitHub workflow configuration file](https://github.com/JetBrains/intellij-platform-plugin-template/blob/main/.github/workflows/build.yml) as a reference.
#### Navigation in the IDE #### Navigation in the IDE
<primary-label ref="2023.3"/>
Reported places are highlighted and linked to the plugin's source code in the <control>Gradle</control> tool window output (2023.3+). Reported places are highlighted and linked to the plugin's source code in the <control>Gradle</control> tool window output.
### JetBrains Marketplace ### JetBrains Marketplace
@ -69,19 +72,20 @@ Use highlighting available via dedicated [IDE inspections](https://www.jetbrains
- `@ApiStatus.Experimental` is considered unstable and may break or be removed. - `@ApiStatus.Experimental` is considered unstable and may break or be removed.
- `@ApiStatus.Internal` must not be used by plugins, see [](api_internal.md) for more details and replacements. - `@ApiStatus.Internal` must not be used by plugins, see [](api_internal.md) for more details and replacements.
- `@ApiStatus.ScheduledForRemoval` denotes API that will be removed in a future version. - `@ApiStatus.ScheduledForRemoval` denotes an API that will be removed in a future version.
Inspection: <control>JVM languages | Unstable API Usage</control> and <control>JVM languages | Unstable type is used in signature</control> Inspection: <control>JVM languages | Unstable API Usage</control> and <control>JVM languages | Unstable type is used in signature</control>
### Obsolete API ### Obsolete API
<primary-label ref="2023.1"/>
API annotated with `@ApiStatus.Obsolete` has been replaced with a better alternative and must not be used for new code. API annotated with `@ApiStatus.Obsolete` has been replaced with a better alternative and must not be used for new code.
Inspection: <control>Plugin DevKit | Code | Usages of ApiStatus.@Obsolete</control> (2023.1) Inspection: <control>Plugin DevKit | Code | Usages of ApiStatus.@Obsolete</control>
### Non-Extendable API ### Non-Extendable API
API annotated with `@ApiStatus.NonExtendable` must not be extended, implemented or overridden. API annotated with `@ApiStatus.NonExtendable` must not be extended, implemented, or overridden.
Inspection: <control>JVM languages | Class, interface, or method should not be extended</control> Inspection: <control>JVM languages | Class, interface, or method should not be extended</control>
@ -102,6 +106,6 @@ Inspection: <control>Plugin DevKit | Plugin descriptor | Plugin.xml validity</co
A plugin might specify a [compatibility range](build_number_ranges.md) including releases where some API is not available. A plugin might specify a [compatibility range](build_number_ranges.md) including releases where some API is not available.
Under the hood, it uses an artifact containing generated data via `@ApiStatus.AvailableSince`, which is automatically attached to the project. Under the hood, it uses an artifact containing generated data via `@ApiStatus.AvailableSince`, which is automatically attached to the project.
> If values are not specified directly in [<path>plugin.xml</path>](plugin_configuration_file.md) (e.g., when providing values via `patchPluginXml` Gradle task (Reference: [2.x](tools_intellij_platform_gradle_plugin_tasks.md#patchPluginXml), [1.x](tools_gradle_intellij_plugin.md#tasks-patchpluginxml))), they must be set explicitly in the inspection's settings.
Inspection: <control>Plugin DevKit | Code | Usage of IntelliJ API not available in older IDEs</control> Inspection: <control>Plugin DevKit | Code | Usage of IntelliJ API not available in older IDEs</control>
> If values are not specified directly in [<path>plugin.xml</path>](plugin_configuration_file.md) (e.g., when providing values via `patchPluginXml` Gradle task (Reference: [2.x](tools_intellij_platform_gradle_plugin_tasks.md#patchPluginXml), [1.x](tools_gradle_intellij_plugin.md#tasks-patchpluginxml))), they must be set explicitly in the inspection's settings.