diff --git a/labels.list b/labels.list index 006a92bb1..55763ff9a 100644 --- a/labels.list +++ b/labels.list @@ -20,6 +20,12 @@ Deprecated, see notes. + + Available in IDE version 2019.2 or later + + + Available in IDE version 2019.3 or later + Available in IDE version 2020.1 or later diff --git a/topics/basics/plugin_structure/plugin_extensions.md b/topics/basics/plugin_structure/plugin_extensions.md index d5bb584eb..44f64ed6f 100644 --- a/topics/basics/plugin_structure/plugin_extensions.md +++ b/topics/basics/plugin_structure/plugin_extensions.md @@ -55,20 +55,20 @@ and one extension to access the `another.plugin.myExtensionPoint` extension poin --> + implementation="com.example.MyAppStarter"/> + implementation="com.example.MyProjectTemplatesFactory"/> - + - + ``` @@ -106,33 +106,48 @@ If an extension instance needs to "opt out" in certain scenarios, it can throw [ Several tooling features are available to help configure bean class extension points in plugin.xml. -Properties annotated with [`RequiredElement`](%gh-ic%/platform/core-api/src/com/intellij/openapi/extensions/RequiredElement.java) are inserted automatically and validated (2019.3 and later). -If the given property is allowed to have an explicit empty value, set `allowEmpty` to `true` (2020.3 and later). +#### Required Properties + -Property names matching the following list will resolve to fully qualified class name: +Properties annotated with [`RequiredElement`](%gh-ic%/platform/core-api/src/com/intellij/openapi/extensions/RequiredElement.java) are inserted automatically and validated. + +If the given property is allowed to have an explicit empty value, set `allowEmpty` to `true` (2020.3+). + +#### Class names + +Property names matching the following list will resolve to a fully qualified class name: - `implementation` - `className` -- `serviceInterface` / `serviceImplementation` - ending with `Class` (case-sensitive) +- `serviceInterface`/`serviceImplementation` -A required parent type can be specified in the extension point declaration via nested [``](plugin_configuration_file.md#idea-plugin__extensionPoints__extensionPoint__with): +A required parent type can be specified in the [extension point declaration](plugin_extension_points.md) via [``](plugin_configuration_file.md#idea-plugin__extensionPoints__extensionPoint__with): ```xml - + ``` -Property name `language` (or ending in `*Language`, 2020.2+) resolves to all present `Language` IDs. +#### Custom resolve -Similarly, `action`/`actionId` (2024.3+) resolves to all registered [``](plugin_configuration_file.md#idea-plugin__actions__action) IDs. +Property name `language` (or ending in `*Language`, 2020.2+) resolves to all present [`Language`](%gh-ic%/platform/core-api/src/com/intellij/lang/Language.java) IDs. -Annotating with [`@Nls`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/Nls.java) validates a UI `String` capitalization according to the text property `Capitalization` enum value (2019.2 and later). +Similarly, `action` and `actionId` (2024.3+) resolve to all registered [``](plugin_configuration_file.md#idea-plugin__actions__action) IDs. + +#### Deprecation/ApiStatus Properties marked as `@Deprecated` or annotated with any of [`ApiStatus`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/ApiStatus.java) `@Internal`, `@Experimental`, `@ScheduledForRemoval`, or `@Obsolete` will be highlighted accordingly. -Attributes with `Enum` type support code insight with _lowerCamelCased_ notation (2020.1 and later). Note: these must not override `toString()`. +#### Enum properties + + +Attributes with `Enum` type support code insight with _lowerCamelCased_ notation. Note: Enum implementation must not override `toString()`. + +#### I18n + + +Annotating with [`@Nls`](%gh-java-annotations%/common/src/main/java/org/jetbrains/annotations/Nls.java) validates a UI `String` capitalization according to the text property `Capitalization` enum value.