mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-28 01:07:49 +08:00
Use the correct nested annotation form
These are correct: - @com.example.Holder.Annotation - @Holder.Annotation - @Annotation These are incorrect: - com.example.Holder.@Annotation - Holder.@Annotation
This commit is contained in:
parent
9c47a557bb
commit
f31aa679e6
@ -61,7 +61,7 @@ _Early Access Program_ (EAP) releases of upcoming versions are available [here](
|
|||||||
|
|
||||||
> Changes from API marked with `@Deprecated(forRemoval=true)` or any of [`ApiStatus`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java) `@Experimental`, `@ScheduledForRemoval`, or `@Internal` are not listed here, as incompatible changes are to be expected.
|
> Changes from API marked with `@Deprecated(forRemoval=true)` or any of [`ApiStatus`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java) `@Experimental`, `@ScheduledForRemoval`, or `@Internal` are not listed here, as incompatible changes are to be expected.
|
||||||
>
|
>
|
||||||
> For API annotated with `ApiStatus.@Internal`/`@IntellijInternalApi`, see [](api_internal.md) for more details and replacements.
|
> For API annotated with `@ApiStatus.Internal`/`@IntellijInternalApi`, see [](api_internal.md) for more details and replacements.
|
||||||
>
|
>
|
||||||
{title="Non-listed changes" style="note"}
|
{title="Non-listed changes" style="note"}
|
||||||
|
|
||||||
@ -120,8 +120,8 @@ See [](verifying_plugin_compatibility.md) for overview of API status.
|
|||||||
| ![Deprecated][deprecated] | Deprecated API | Please see code documentation for replacement |
|
| ![Deprecated][deprecated] | Deprecated API | Please see code documentation for replacement |
|
||||||
| ![Removal][removal] | Scheduled for Removal API | Please see code documentation for replacement |
|
| ![Removal][removal] | Scheduled for Removal API | Please see code documentation for replacement |
|
||||||
| ![Obsolete][obsolete] | Obsolete API | Do not use in new code, please see code documentation for replacement ([](verifying_plugin_compatibility.md#obsolete-api)) |
|
| ![Obsolete][obsolete] | Obsolete API | Do not use in new code, please see code documentation for replacement ([](verifying_plugin_compatibility.md#obsolete-api)) |
|
||||||
| ![Experimental API][experimental] | Experimental API | Annotated with [`ApiStatus.@Experimental`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), API might be altered or removed without prior notice |
|
| ![Experimental API][experimental] | Experimental API | Annotated with [`@ApiStatus.Experimental`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), API might be altered or removed without prior notice |
|
||||||
| ![Internal API][internal] | Internal API | Annotated with [`ApiStatus.@Internal`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), must not be used by 3rd party, see [](api_internal.md) |
|
| ![Internal API][internal] | Internal API | Annotated with [`@ApiStatus.Internal`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), must not be used by 3rd party, see [](api_internal.md) |
|
||||||
| ![Project-Level][project-level] | Project-Level Extension Point/Topic | <p>Can have [`Project`](%gh-ic%/platform/core-api/src/com/intellij/openapi/project/Project.java) as constructor parameter</p><p>Extension Point: Declared with `area="IDEA_PROJECT"`</p><p>Listener: registered in [`<projectListeners>`](plugin_configuration_file.md#idea-plugin__projectListeners)</p> |
|
| ![Project-Level][project-level] | Project-Level Extension Point/Topic | <p>Can have [`Project`](%gh-ic%/platform/core-api/src/com/intellij/openapi/project/Project.java) as constructor parameter</p><p>Extension Point: Declared with `area="IDEA_PROJECT"`</p><p>Listener: registered in [`<projectListeners>`](plugin_configuration_file.md#idea-plugin__projectListeners)</p> |
|
||||||
| ![Non-Dynamic][non-dynamic] | Non-Dynamic Extension Point | Installation/update of plugin requires IDE restart ([](dynamic_plugins.md)) |
|
| ![Non-Dynamic][non-dynamic] | Non-Dynamic Extension Point | Installation/update of plugin requires IDE restart ([](dynamic_plugins.md)) |
|
||||||
| ![DumbAware][dumb-aware] | `DumbAware` Extension Point | Implementations marked with [`DumbAware`](%gh-ic%/platform/core-api/src/com/intellij/openapi/project/DumbAware.java) will be processed during [dumb mode](indexing_and_psi_stubs.md#dumb-mode) |
|
| ![DumbAware][dumb-aware] | `DumbAware` Extension Point | Implementations marked with [`DumbAware`](%gh-ic%/platform/core-api/src/com/intellij/openapi/project/DumbAware.java) will be processed during [dumb mode](indexing_and_psi_stubs.md#dumb-mode) |
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<!-- Copyright 2000-2023 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
|
<!-- Copyright 2000-2024 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
|
||||||
|
|
||||||
# Internal API Migration
|
# Internal API Migration
|
||||||
|
|
||||||
<link-summary>Lists private API annotated with ApiStatus.@Internal/@IntellijInternalApi and corresponding replacement.</link-summary>
|
<link-summary>Lists private API annotated with @ApiStatus.Internal/@IntellijInternalApi and corresponding replacement.</link-summary>
|
||||||
|
|
||||||
This page lists commonly used API annotated with [`ApiStatus.@Internal`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java)
|
This page lists commonly used API annotated with [`@ApiStatus.Internal`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java)
|
||||||
or [`@IntellijInternalApi`](%gh-ic%/platform/util/src/com/intellij/openapi/util/IntellijInternalApi.kt)
|
or [`@IntellijInternalApi`](%gh-ic%/platform/util/src/com/intellij/openapi/util/IntellijInternalApi.kt)
|
||||||
which indicates it is _private API_ and must not be used outside of IntelliJ Platform itself:
|
which indicates it is _private API_ and must not be used outside of IntelliJ Platform itself:
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ Each entry is mapped to its corresponding _Replacement_, pointing to the recomme
|
|||||||
|
|
||||||
## Exceptions
|
## Exceptions
|
||||||
|
|
||||||
The API listed in this table is currently (or was previously) marked with `ApiStatus.@Internal`, but its status has changed in the meantime (or will change).
|
The API listed in this table is currently (or was previously) marked with `@ApiStatus.Internal`, but its status has changed in the meantime (or will change).
|
||||||
Therefore, any reported violations can be disregarded.
|
Therefore, any reported violations can be disregarded.
|
||||||
|
|
||||||
| Internal API | Note |
|
| Internal API | Note |
|
||||||
|
@ -63,10 +63,10 @@ New API for Editor Inlay Hints
|
|||||||
`com.intellij.openapi.fileTypes.FileTypeFactory` deprecated
|
`com.intellij.openapi.fileTypes.FileTypeFactory` deprecated
|
||||||
: When registering a file type via file extension, pattern or exact file name matching, use `com.intellij.fileType` extension point instead (see [Sample](language_and_filetype.md#register-the-file-type)).
|
: When registering a file type via file extension, pattern or exact file name matching, use `com.intellij.fileType` extension point instead (see [Sample](language_and_filetype.md#register-the-file-type)).
|
||||||
|
|
||||||
`org.jetbrains.annotations.ApiStatus.@NonExtendable`
|
`@org.jetbrains.annotations.ApiStatus.NonExtendable`
|
||||||
: Indicates that the annotated API class, interface, or method must not get extended, implemented, or overridden by external plugins but can only be obtained or instantiated for classes and interfaces, or called for methods.
|
: Indicates that the annotated API class, interface, or method must not get extended, implemented, or overridden by external plugins but can only be obtained or instantiated for classes and interfaces, or called for methods.
|
||||||
|
|
||||||
`org.jetbrains.annotations.ApiStatus.@OverrideOnly`
|
`@org.jetbrains.annotations.ApiStatus.OverrideOnly`
|
||||||
: Indicates that the annotated method is part of SPI (Service Provider Interface), which is intended to be only implemented or overridden but never called by external plugins.
|
: Indicates that the annotated method is part of SPI (Service Provider Interface), which is intended to be only implemented or overridden but never called by external plugins.
|
||||||
|
|
||||||
`com.intellij.util.Query.forEach`
|
`com.intellij.util.Query.forEach`
|
||||||
@ -90,13 +90,13 @@ Unbundled plugins
|
|||||||
`com.intellij.testFramework.InspectionTestCase` changed to light test
|
`com.intellij.testFramework.InspectionTestCase` changed to light test
|
||||||
: Use dedicated `ProjectDescriptor` or rollback project setup changes in `tearDown()` (see [Light and Heavy Tests](light_and_heavy_tests.md)).
|
: Use dedicated `ProjectDescriptor` or rollback project setup changes in `tearDown()` (see [Light and Heavy Tests](light_and_heavy_tests.md)).
|
||||||
|
|
||||||
`org.jetbrains.annotations.ApiStatus.@AvailableSince`
|
`@org.jetbrains.annotations.ApiStatus.AvailableSince`
|
||||||
: External annotations for the IntelliJ Platform are generated and attached to plugin projects automatically (replacing `@since` Javadoc).
|
: External annotations for the IntelliJ Platform are generated and attached to plugin projects automatically (replacing `@since` Javadoc).
|
||||||
|
|
||||||
`org.jetbrains.annotations.ApiStatus.@ScheduledForRemoval`
|
`@org.jetbrains.annotations.ApiStatus.ScheduledForRemoval`
|
||||||
: External annotations for the IntelliJ Platform are generated and attached to plugin projects automatically. This allows highlighting of API, which has been removed in newer platform versions.
|
: External annotations for the IntelliJ Platform are generated and attached to plugin projects automatically. This allows highlighting of API, which has been removed in newer platform versions.
|
||||||
|
|
||||||
`org.jetbrains.annotations.ApiStatus.@Internal`
|
`@org.jetbrains.annotations.ApiStatus.Internal`
|
||||||
: Indicates that the annotated element must not be considered as a public API. Do not use outside of the IntelliJ Platform, see [](api_internal.md).
|
: Indicates that the annotated element must not be considered as a public API. Do not use outside of the IntelliJ Platform, see [](api_internal.md).
|
||||||
|
|
||||||
`PsiReferenceProvider` assert underlying element
|
`PsiReferenceProvider` assert underlying element
|
||||||
|
@ -73,4 +73,4 @@ Run Annotator During Indexing
|
|||||||
: [Annotators](syntax_highlighting_and_error_highlighting.md#annotator) can implement `DumbAware` to run during indexing (e.g., providing additional syntax highlighting).
|
: [Annotators](syntax_highlighting_and_error_highlighting.md#annotator) can implement `DumbAware` to run during indexing (e.g., providing additional syntax highlighting).
|
||||||
|
|
||||||
Obsolete API Status
|
Obsolete API Status
|
||||||
: Newly introduced `ApiStatus.@Obsolete` marks API that should not be used for new code, see [](verifying_plugin_compatibility.md#obsolete-api).
|
: Newly introduced `@ApiStatus.Obsolete` marks API that should not be used for new code, see [](verifying_plugin_compatibility.md#obsolete-api).
|
||||||
|
@ -149,7 +149,7 @@ As a general remark, the use of implementation classes is strongly discouraged (
|
|||||||
located under `impl` package, or included in <path>*-impl.jar</path>).
|
located under `impl` package, or included in <path>*-impl.jar</path>).
|
||||||
|
|
||||||
API annotated with
|
API annotated with
|
||||||
[`ApiStatus.@Internal`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java)
|
[`@ApiStatus.Internal`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java)
|
||||||
must not be used, see [](api_internal.md) for more details and replacements.
|
must not be used, see [](api_internal.md) for more details and replacements.
|
||||||
|
|
||||||
## 3 Tools and References
|
## 3 Tools and References
|
||||||
|
@ -1666,11 +1666,11 @@ Accepted values
|
|||||||
- `FailureLevel.COMPATIBILITY_WARNINGS` - Compatibility warnings detected against the specified IDE version.
|
- `FailureLevel.COMPATIBILITY_WARNINGS` - Compatibility warnings detected against the specified IDE version.
|
||||||
- `FailureLevel.COMPATIBILITY_PROBLEMS` - Compatibility problems detected against the specified IDE version.
|
- `FailureLevel.COMPATIBILITY_PROBLEMS` - Compatibility problems detected against the specified IDE version.
|
||||||
- `FailureLevel.DEPRECATED_API_USAGES` - Plugin uses API marked as deprecated (`@Deprecated`).
|
- `FailureLevel.DEPRECATED_API_USAGES` - Plugin uses API marked as deprecated (`@Deprecated`).
|
||||||
- `FailureLevel.SCHEDULED_FOR_REMOVAL_API_USAGES` - Plugin uses API marked as scheduled for removal (`ApiStatus.@ScheduledForRemoval`).
|
- `FailureLevel.SCHEDULED_FOR_REMOVAL_API_USAGES` - Plugin uses API marked as scheduled for removal (`@ApiStatus.ScheduledForRemoval`).
|
||||||
- `FailureLevel.EXPERIMENTAL_API_USAGES` - Plugin uses API marked as experimental (`ApiStatus.@Experimental`).
|
- `FailureLevel.EXPERIMENTAL_API_USAGES` - Plugin uses API marked as experimental (`@ApiStatus.Experimental`).
|
||||||
- `FailureLevel.INTERNAL_API_USAGES` - Plugin uses API marked as internal (`ApiStatus.@Internal`).
|
- `FailureLevel.INTERNAL_API_USAGES` - Plugin uses API marked as internal (`@ApiStatus.Internal`).
|
||||||
- `FailureLevel.OVERRIDE_ONLY_API_USAGES` - Override-only API is used incorrectly (`ApiStatus.@OverrideOnly`).
|
- `FailureLevel.OVERRIDE_ONLY_API_USAGES` - Override-only API is used incorrectly (`@ApiStatus.OverrideOnly`).
|
||||||
- `FailureLevel.NON_EXTENDABLE_API_USAGES` - Non-extendable API is used incorrectly (`ApiStatus.@NonExtendable`).
|
- `FailureLevel.NON_EXTENDABLE_API_USAGES` - Non-extendable API is used incorrectly (`@ApiStatus.NonExtendable`).
|
||||||
- `FailureLevel.PLUGIN_STRUCTURE_WARNINGS` - The structure of the plugin is not valid.
|
- `FailureLevel.PLUGIN_STRUCTURE_WARNINGS` - The structure of the plugin is not valid.
|
||||||
- `FailureLevel.MISSING_DEPENDENCIES` - Plugin has some dependencies missing.
|
- `FailureLevel.MISSING_DEPENDENCIES` - Plugin has some dependencies missing.
|
||||||
- `FailureLevel.INVALID_PLUGIN` - "Provided plugin artifact is not valid."
|
- `FailureLevel.INVALID_PLUGIN` - "Provided plugin artifact is not valid."
|
||||||
|
@ -21,11 +21,11 @@ Enum class describing the failure level of the IntelliJ Plugin Verifier CLI tool
|
|||||||
| `COMPATIBILITY_WARNINGS` | Compatibility warnings detected against the specified IDE version. |
|
| `COMPATIBILITY_WARNINGS` | Compatibility warnings detected against the specified IDE version. |
|
||||||
| `COMPATIBILITY_PROBLEMS` | Compatibility problems 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`). |
|
| `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`). |
|
| `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`). |
|
| `EXPERIMENTAL_API_USAGES` | Plugin uses API marked as experimental (`@ApiStatus.Experimental`). |
|
||||||
| `INTERNAL_API_USAGES` | Plugin uses API marked as internal (`ApiStatus.@Internal`). |
|
| `INTERNAL_API_USAGES` | Plugin uses API marked as internal (`@ApiStatus.Internal`). |
|
||||||
| `OVERRIDE_ONLY_API_USAGES` | Override-only API is used incorrectly (`ApiStatus.@OverrideOnly`). |
|
| `OVERRIDE_ONLY_API_USAGES` | Override-only API is used incorrectly (`@ApiStatus.OverrideOnly`). |
|
||||||
| `NON_EXTENDABLE_API_USAGES` | Non-extendable API is used incorrectly (`ApiStatus.@NonExtendable`). |
|
| `NON_EXTENDABLE_API_USAGES` | Non-extendable API is used incorrectly (`@ApiStatus.NonExtendable`). |
|
||||||
| `PLUGIN_STRUCTURE_WARNINGS` | The structure of the plugin is not valid. |
|
| `PLUGIN_STRUCTURE_WARNINGS` | The structure of the plugin is not valid. |
|
||||||
| `MISSING_DEPENDENCIES` | Plugin has some dependencies missing. |
|
| `MISSING_DEPENDENCIES` | Plugin has some dependencies missing. |
|
||||||
| `INVALID_PLUGIN` | Provided plugin artifact is not valid. |
|
| `INVALID_PLUGIN` | Provided plugin artifact is not valid. |
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
||||||
|
|
||||||
# Verifying Plugin Compatibility
|
# Verifying Plugin Compatibility
|
||||||
|
|
||||||
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
Please see [](api_changes_list.md) for known breaking changes.
|
Please see [](api_changes_list.md) for known breaking changes.
|
||||||
|
|
||||||
For API annotated with [`ApiStatus.@Internal`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), see [](api_internal.md) for more details and replacements.
|
For API annotated with [`@ApiStatus.Internal`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), see [](api_internal.md) for more details and replacements.
|
||||||
|
|
||||||
## Plugin Verifier
|
## Plugin Verifier
|
||||||
|
|
||||||
@ -32,40 +32,40 @@ Use highlighting available via dedicated [IDE inspections](https://www.jetbrains
|
|||||||
|
|
||||||
### Unstable API
|
### Unstable API
|
||||||
|
|
||||||
- `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 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
|
||||||
|
|
||||||
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> (2023.1)
|
||||||
|
|
||||||
### 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>
|
||||||
|
|
||||||
### Override-Only API
|
### Override-Only API
|
||||||
|
|
||||||
API annotated with `ApiStatus.@OverrideOnly` must not be called directly by the client.
|
API annotated with `@ApiStatus.OverrideOnly` must not be called directly by the client.
|
||||||
|
|
||||||
Inspection: <control>JVM languages | Method can only be overridden</control>
|
Inspection: <control>JVM languages | Method can only be overridden</control>
|
||||||
|
|
||||||
### plugin.xml
|
### plugin.xml
|
||||||
|
|
||||||
Usage of [Extension Points](plugin_extensions.md) which are deprecated or annotated with `ApiStatus.@Experimental` or `ApiStatus.@Internal` is also highlighted in <path>[plugin.xml](plugin_configuration_file.md)</path> files.
|
Usage of [Extension Points](plugin_extensions.md) which are deprecated or annotated with `@ApiStatus.Experimental` or `@ApiStatus.Internal` is also highlighted in <path>[plugin.xml](plugin_configuration_file.md)</path> files.
|
||||||
|
|
||||||
Inspection: <control>Plugin DevKit | Plugin descriptor | Plugin.xml validity</control>
|
Inspection: <control>Plugin DevKit | Plugin descriptor | Plugin.xml validity</control>
|
||||||
|
|
||||||
### API Compatibility
|
### API Compatibility
|
||||||
|
|
||||||
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 [](tools_gradle_intellij_plugin.md#tasks-patchpluginxml) Gradle task), they must be set explicitly in the inspection's settings.
|
> If values are not specified directly in [<path>plugin.xml</path>](plugin_configuration_file.md) (e.g., when providing values via [](tools_gradle_intellij_plugin.md#tasks-patchpluginxml) Gradle task), they must be set explicitly in the inspection's settings.
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ There are two types of extension points:
|
|||||||
* _Interface_ extension points allow other plugins to extend your plugins with _code_.
|
* _Interface_ extension points allow other plugins to extend your plugins with _code_.
|
||||||
When defining an interface extension point, specify an interface, and other plugins will provide classes implementing that interface.
|
When defining an interface extension point, specify an interface, and other plugins will provide classes implementing that interface.
|
||||||
The providing plugin can then invoke methods on this interface.
|
The providing plugin can then invoke methods on this interface.
|
||||||
In most cases, the interface can be annotated with `ApiStatus.@OverrideOnly` (see [](verifying_plugin_compatibility.md#override-only-api)).
|
In most cases, the interface can be annotated with `@ApiStatus.OverrideOnly` (see [](verifying_plugin_compatibility.md#override-only-api)).
|
||||||
* _Bean_ extension points allow other plugins to extend a plugin with _data_.
|
* _Bean_ extension points allow other plugins to extend a plugin with _data_.
|
||||||
Specify the fully qualified name of an extension class, and other plugins will provide data that will be turned into instances of that class.
|
Specify the fully qualified name of an extension class, and other plugins will provide data that will be turned into instances of that class.
|
||||||
|
|
||||||
|
@ -260,7 +260,7 @@ Minor Changes and Additions
|
|||||||
{#april-22}
|
{#april-22}
|
||||||
|
|
||||||
Internal API Migration
|
Internal API Migration
|
||||||
: As API annotated with `ApiStatus.@Internal` must not be used in plugins, refer to [](api_internal.md) for a list corresponding API replacements and additional information.
|
: As API annotated with `@ApiStatus.Internal` must not be used in plugins, refer to [](api_internal.md) for a list corresponding API replacements and additional information.
|
||||||
|
|
||||||
### March
|
### March
|
||||||
{#march-22}
|
{#march-22}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
<!-- Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
||||||
|
|
||||||
# Messaging Infrastructure
|
# Messaging Infrastructure
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ The following sections describe the main components of the messaging API:
|
|||||||
|
|
||||||
The [`Topic`](%gh-ic%/platform/extensions/src/com/intellij/util/messages/Topic.java) class serves as an endpoint at the messaging infrastructure.
|
The [`Topic`](%gh-ic%/platform/extensions/src/com/intellij/util/messages/Topic.java) class serves as an endpoint at the messaging infrastructure.
|
||||||
Clients are allowed to subscribe to a specific topic within a bus and send messages to that topic within that particular bus.
|
Clients are allowed to subscribe to a specific topic within a bus and send messages to that topic within that particular bus.
|
||||||
To clarify the corresponding message bus, a `Topic` field declaration should be annotated with `Topic.@AppLevel` and/or `Topic.@ProjectLevel`.
|
To clarify the corresponding message bus, a `Topic` field declaration should be annotated with `@Topic.AppLevel` and/or `@Topic.ProjectLevel`.
|
||||||
|
|
||||||
```plantuml
|
```plantuml
|
||||||
@startuml
|
@startuml
|
||||||
|
Loading…
x
Reference in New Issue
Block a user