diff --git a/topics/basics/plugin_structure/plugin_actions.md b/topics/basics/plugin_structure/plugin_actions.md index 8b9307bbf..60b522005 100644 --- a/topics/basics/plugin_structure/plugin_actions.md +++ b/topics/basics/plugin_structure/plugin_actions.md @@ -1,4 +1,4 @@ -[//]: # (title: Plugin Actions) +[//]: # (title: Actions) @@ -14,4 +14,4 @@ Subgroups of the group can form submenus of a menu. The user can customize all registered actions via [Menus and Toolbars](https://www.jetbrains.com/help/idea/customize-actions-menus-and-toolbars.html) settings. -Please see [Action System](basic_action_system.md) on how to create and register actions in the IDE. \ No newline at end of file +Please see [Action System](basic_action_system.md) on how to create and register actions in the IDE. diff --git a/topics/basics/plugin_structure/plugin_class_loaders.md b/topics/basics/plugin_structure/plugin_class_loaders.md index 671f297fe..4e65ca5aa 100644 --- a/topics/basics/plugin_structure/plugin_class_loaders.md +++ b/topics/basics/plugin_structure/plugin_class_loaders.md @@ -1,4 +1,4 @@ -[//]: # (title: Plugin Class Loaders) +[//]: # (title: Class Loaders) @@ -22,4 +22,4 @@ For this to work in a plugin, the context class loader must be set to the plugin } finally { Thread.currentThread().setContextClassLoader(current); } -``` \ No newline at end of file +``` diff --git a/topics/basics/plugin_structure/plugin_components.md b/topics/basics/plugin_structure/plugin_components.md index e2c1655ca..06f0ec28f 100644 --- a/topics/basics/plugin_structure/plugin_components.md +++ b/topics/basics/plugin_structure/plugin_components.md @@ -1,4 +1,4 @@ -[//]: # (title: Plugin Components) +[//]: # (title: Components) diff --git a/topics/basics/plugin_structure/plugin_content.md b/topics/basics/plugin_structure/plugin_content.md index 971a7c740..2ae863201 100644 --- a/topics/basics/plugin_structure/plugin_content.md +++ b/topics/basics/plugin_structure/plugin_content.md @@ -47,4 +47,4 @@ All jars from the /lib folder are automatically added to the classp ├── plugin.xml ├── pluginIcon.svg └── pluginIcon_dark.svg -``` \ No newline at end of file +``` diff --git a/topics/basics/plugin_structure/plugin_dependencies.md b/topics/basics/plugin_structure/plugin_dependencies.md index 9c1ef5253..be558a886 100644 --- a/topics/basics/plugin_structure/plugin_dependencies.md +++ b/topics/basics/plugin_structure/plugin_dependencies.md @@ -1,4 +1,4 @@ -[//]: # (title: Plugin Dependencies) +[//]: # (title: Dependencies) @@ -13,7 +13,7 @@ For more information about dependencies on the IntelliJ Platform modules, see Pa To express dependencies on classes from other plugins or modules, perform the following three required steps: ## Locating Plugin ID and Preparing Sandbox -A compatible version must be chosen carefully according to the plugin's [compatibility](build_number_ranges.md). +A compatible version must be chosen carefully according to the plugin's [compatibility](build_number_ranges.md). For plugins published on [JetBrains Plugins Repository](https://plugins.jetbrains.com) - open plugin's detail page @@ -26,16 +26,16 @@ If the plugin is not bundled with the target IDE, run the (sandbox) [IDE Develop ## Project Setup Depending on the chosen development workflow (Gradle or DevKit), one of the two following steps is necessary. - + - + > Please see the `plugins` attribute [gradle-intellij-plugin: Configuration](https://github.com/JetBrains/gradle-intellij-plugin#configuration) for acceptable values. > {type="note"} If the project uses [Gradle](gradle_build_system.md) with a Groovy build script to build the plugin, add the dependency to the `plugins` parameter of the `intellij` block in your build.gradle, for example: - + build.gradle ```groovy intellij { @@ -100,9 +100,9 @@ In this case, the plugin will load even if the plugin it depends on is not insta Declare additional `optional="true"` and `config-file` attribute pointing to optional plugin descriptor file: ```xml - dependency.plugin.id + dependency.plugin.id ``` - + > Additional plugin descriptor files must follow the naming pattern myPluginId-$NAME$.xml resulting in unique filenames to prevent problems with classloaders in tests ([Details](https://youtrack.jetbrains.com/issue/IDEA-205964)). > {type="note"} diff --git a/topics/basics/plugin_structure/plugin_extension_points.md b/topics/basics/plugin_structure/plugin_extension_points.md index ab8d89d10..6d33e0daf 100644 --- a/topics/basics/plugin_structure/plugin_extension_points.md +++ b/topics/basics/plugin_structure/plugin_extension_points.md @@ -1,4 +1,4 @@ -[//]: # (title: Plugin Extension Points) +[//]: # (title: Extension Points) @@ -39,7 +39,7 @@ Then insert a child element `` that defines the extension point ``` -The `name` attribute assigns a unique name for this extension point. +The `name` attribute assigns a unique name for this extension point. Its fully qualified name required in [Using Extension Points](#using-extension-points) is built by prefixing `` + `.`: `my.plugin.myExtensionPoint1` and `my.plugin.myExtensionPoint2`. The `beanClass` attribute sets a bean class that specifies one or several properties annotated with the [`@Attribute`](upsource:///platform/util/src/com/intellij/util/xmlb/annotations/Attribute.java) annotation. @@ -142,4 +142,4 @@ Extension points matching these conditions can then be marked as _dynamic_ by ad ``` > All non-dynamic extension points are highlighted via Plugin DevKit | Plugin descriptor | Plugin.xml dynamic plugin verification inspection available in IntelliJ IDEA 2020.1 or later. - > Previous versions also highlight the `dynamic` attribute as "experimental". \ No newline at end of file + > Previous versions also highlight the `dynamic` attribute as "experimental". diff --git a/topics/basics/plugin_structure/plugin_extensions.md b/topics/basics/plugin_structure/plugin_extensions.md index f397f8752..fc921deb4 100644 --- a/topics/basics/plugin_structure/plugin_extensions.md +++ b/topics/basics/plugin_structure/plugin_extensions.md @@ -1,4 +1,4 @@ -[//]: # (title: Plugin Extensions) +[//]: # (title: Extensions) @@ -18,12 +18,12 @@ There are more than 1000 extension points available in the platform and the bund ## Exploring Available Extensions [Extension Point List](extension_point_list.md) contains all available extension points in IntelliJ Platform and from bundled plugins in IntelliJ IDEA. -Additionally, dedicated Extension Point Lists specific to IDEs are available under _Part VIII - Product Specific_. +Additionally, dedicated Extension Point Lists specific to IDEs are available under _Part VIII - Product Specific_. Browse usages inside existing implementations of open-source IntelliJ Platform plugins via [IntelliJ Platform Explorer](https://jb.gg/ipe). Alternatively (or when using 3rd party extension points), all available extension points for the specified namespace (`defaultExtensionNs`) can be listed using auto-completion inside the `` block in plugin.xml. Use View | Quick Documentation in the lookup list to access more information about the extension point and implementation (if applicable). -See [Explore the IntelliJ Platform API](explore_api.md) for more information and strategies. +See [Explore the IntelliJ Platform API](explore_api.md) for more information and strategies. ## Declaring Extensions @@ -68,7 +68,7 @@ The following properties are available always: - `id` - unique ID - `order` - allows to order all defined extensions using `first`, `last` or `before|after [id]` respectively - `os` - allows restricting extension to given OS, e.g., `os="windows"` registers the extension on Windows only - + If an extension instance needs to "opt out" in certain scenarios, it can throw [`ExtensionNotApplicableException`](upsource:///platform/extensions/src/com/intellij/openapi/extensions/ExtensionNotApplicableException.java) in its constructor. ### Extension Properties Code Insight diff --git a/topics/basics/plugin_structure/plugin_listeners.md b/topics/basics/plugin_structure/plugin_listeners.md index 08f70eed6..617dff42b 100644 --- a/topics/basics/plugin_structure/plugin_listeners.md +++ b/topics/basics/plugin_structure/plugin_listeners.md @@ -1,4 +1,4 @@ -[//]: # (title: Plugin Listeners) +[//]: # (title: Listeners) diff --git a/topics/basics/plugin_structure/plugin_services.md b/topics/basics/plugin_structure/plugin_services.md index 78839d5e0..12baf30a9 100644 --- a/topics/basics/plugin_structure/plugin_services.md +++ b/topics/basics/plugin_structure/plugin_services.md @@ -1,4 +1,4 @@ -[//]: # (title: Plugin Services) +[//]: # (title: Services) @@ -53,7 +53,7 @@ To register a non-[Light Service](#light-services), distinct extension points ar * `com.intellij.applicationService` - application level service * `com.intellij.projectService` - project level service * `com.intellij.moduleService` - module level service (not recommended, see Note above) - + To expose service API, create separate class for `serviceInterface` and extend it in corresponding class registered in `serviceImplementation`. If `serviceInterface` isn't specified, it's supposed to have the same value as `serviceImplementation`.