diff --git a/reference_guide/api_changes_list_2019.md b/reference_guide/api_changes_list_2019.md
index 62c974fbd..b6f20b041 100644
--- a/reference_guide/api_changes_list_2019.md
+++ b/reference_guide/api_changes_list_2019.md
@@ -1,4 +1,4 @@
-
+
# Incompatible Changes in IntelliJ Platform and Plugins API 2019.*
@@ -91,7 +91,7 @@ NOTE: Entries not starting with code quotes (`name`) can be added to document no
: Use `com.intellij.codeInsight.completion.PrefixMatcher.sortMatching(Collection)` instead
`com.intellij.json.JsonFileTypeFactory` class removed
-: Use `com.intellij.fileType` extension point instead.
+: Use instead.
`com.intellij.util.containers.ConcurrentHashSet` class removed
: Use `com.intellij.util.containers.ContainerUtil#newConcurrentSet` instead.
@@ -234,10 +234,10 @@ Recompile your code to pick up the new signature.
: Please use different base class for PSI elements.
`com.intellij.ide.actions.SearchAgainAction` class now extends `com.intellij.openapi.editor.actionSystem.EditorAction` and inherits its final method `actionPerformed`
-: Please use the `com.intellij.editorActionHandler` extension point to register a different handler for the action.
+: Please use the to register a different handler for the action.
`com.intellij.ide.actions.SearchBackAction` class now extends `com.intellij.openapi.editor.actionSystem.EditorAction` and inherits its final method `actionPerformed`
-: Please use the `com.intellij.editorActionHandler` extension point to register a different handler for the action.
+: Please use the to register a different handler for the action.
`com.intellij.lexer.RestartableLexer.getRestartableState()` method removed
: Please use `com.intellij.lexer.RestartableLexer.isRestartableState(int state)` instead.
diff --git a/reference_guide/api_changes_list_2021.md b/reference_guide/api_changes_list_2021.md
index c2615c6a8..6fe84df93 100644
--- a/reference_guide/api_changes_list_2021.md
+++ b/reference_guide/api_changes_list_2021.md
@@ -1,4 +1,4 @@
-
+
# Incompatible Changes in IntelliJ Platform and Plugins API 2021.*
@@ -379,7 +379,7 @@ Add implementation for `com.intellij.openapi.fileEditor.FileEditor.getFile()`
`com.jetbrains.performancePlugin.CommandProvider.getCommands(Project)` method parameter `Project` removed
: Project is now only accessible via `com.intellij.openapi.ui.playback.PlaybackContext.getProject()` since it may change during script execution.
-JSON Widget suppressor `com.intellij.json.jsonWidgetSuppressor` EP
+JSON Widget suppressor
: Override new method [`JsonWidgetSuppressor.isCandidateForSuppress(VirtualFile, Project)`](%gh-ic%/json/src/com/jetbrains/jsonSchema/extension/JsonWidgetSuppressor.java) for quick check in [EDT](threading_model.md) before `suppressSwitcherWidget()` is called on a background thread.
### HTTP Client Plugin 2021.1
diff --git a/reference_guide/api_changes_list_2023.md b/reference_guide/api_changes_list_2023.md
index 71140a1b1..678dc1a13 100644
--- a/reference_guide/api_changes_list_2023.md
+++ b/reference_guide/api_changes_list_2023.md
@@ -1,4 +1,4 @@
-
+
# Incompatible Changes in IntelliJ Platform and Plugins API 2023.*
@@ -315,7 +315,7 @@ Fragment builder functions from `ExternalSystemRunConfigurationUtil` file moved
: This may break source-compatibility with inheritors written in Kotlin.
Specify `displayName`/`key` for `Configurable`
-: To improve performance, provide either attribute for `com.intellij.applicationConfigurable` or `com.intellij.projectConfigurable` extension point (see [](settings_guide.md)).
+: To improve performance, provide either attribute for or (see [](settings_guide.md)).
`com.intellij.remote.RemoteProcess.setWindowSize(int, int)` abstract method added
: Should implement this method.
@@ -398,7 +398,7 @@ Apache Batik library unbundled
: The inner interface was moved to upper level.
`com.intellij.database.dataSource.url.TypesRegistry.BaseTypeDescriptor` class moved to package `com.intellij.database.dataSource.url.ui`
-: UI extracted from `TypesRegistry` to `TypesRegistryUi`. Use `com.intellij.database.urlParamEditorProvider` extension point to register parameter descriptor, use `com.intellij.database.urlParamEditorUiProvider` extension point to register parameter editor descriptor.
+: UI extracted from `TypesRegistry` to `TypesRegistryUi`. Use to register parameter descriptor, use to register parameter editor descriptor.
`com.intellij.database.datagrid.DataGrid.setAnonymousColumnName(String)` method removed
: Only recompilation needed for classes that implement `DataGrid` and delegate calls to an actual `DataGrid` implementation.
diff --git a/topics/_shared/snippets.topic b/topics/_shared/snippets.topic
index 2f8d4f24c..a0a16c10d 100644
--- a/topics/_shared/snippets.topic
+++ b/topics/_shared/snippets.topic
@@ -222,5 +222,8 @@
installed and enabled.
-
+
+ %ep%
extension point
+
diff --git a/topics/appendix/api_internal/api_internal.md b/topics/appendix/api_internal/api_internal.md
index 7e770b4b6..0e7355284 100644
--- a/topics/appendix/api_internal/api_internal.md
+++ b/topics/appendix/api_internal/api_internal.md
@@ -38,34 +38,34 @@ Each entry is mapped to its corresponding _Replacement_, pointing to the recomme
## IntelliJ Platform
-| Internal API | Replacement |
-|-------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `AnAction.applyTextOverride()` | [](plugin_configuration_file.md#idea-plugin__actions__action__override-text) |
-| `ApplicationLoadListener` | See [](plugin_components.md#application-startup) |
-| `BuildNumber.currentVersion()` | Use `ApplicationInfo.getBuild()` |
-| `CompactVirtualFileSet` | Use `VfsUtilCore.createCompactVirtualFileSet()` |
-| `DefaultPicoContainer` | Use [extension points](plugin_extensions.md) and [services](plugin_services.md) |
-| `EdtDataContext` | [See Doc](%gh-ic%/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/EdtDataContext.kt) |
-| `ExperimentalUI.isNewUI()` | Use [`NewUI.isEnabled()`](%gh-ic%/platform/platform-api/src/com/intellij/ui/NewUI.java) |
-| `FileTypeIndex.NAME` | Use static methods in `FileTypeIndex` directly |
-| `IElementType.getDebugName()` | Override/use `IElementType.toString()` |
-| `IconLoader.CachedImageIcon` | Use methods exposed in `IconLoader` |
-| `IconLoader.LazyIcon` | Use `IconLoader.createLazy()` |
-| `IndexingDataKeys` | [See Doc](%gh-ic%/platform/core-impl/src/com/intellij/util/indexing/IndexingDataKeys.java) |
-| `Module.getModuleFile()` | [See Doc](%gh-ic%/platform/core-api/src/com/intellij/openapi/module/Module.java) |
-| `Module.getModuleFilePath()` | [See Doc](%gh-ic%/platform/core-api/src/com/intellij/openapi/module/Module.java) |
-| `Module.getModuleTypeName()` | [See Doc](%gh-ic%/platform/core-api/src/com/intellij/openapi/module/Module.java) |
-| `ModuleTypeManager.registerModuleType()` | Use `com.intellij.moduleType` extension point instead, [`ModuleType`](%gh-ic%/platform/lang-core/src/com/intellij/openapi/module/ModuleType.java) |
-| `PathMacros.setMacro()` | Use `com.intellij.pathMacroContributor` extension point, [`PathMacroContributor`](%gh-ic%/platform/core-api/src/com/intellij/openapi/application/PathMacroContributor.java) |
-| `PlatformUtils` | [See Doc](%gh-ic%/platform/core-api/src/com/intellij/util/PlatformUtils.java) |
-| `PluginClassLoader` | Cast to [`PluginAwareClassLoader`](%gh-ic%/platform/extensions/src/com/intellij/ide/plugins/cl/PluginAwareClassLoader.java) |
-| `PluginManager.getLogger()` | Use own logger, see [](ide_infrastructure.md#logging) |
-| `PreloadingActivity` | Use `StartupActivity.Background` ([docs](plugin_components.md#project-open)) with atomic flag to run only once during IDE lifetime |
-| `ProjectLibraryTable` | Use `LibraryTablesRegistrar.getLibraryTable()` |
-| `SVGLoader` | Use `ImageLoader.loadFromResource()` |
-| `ScrollBarPainter` | [See Doc](%gh-ic%/platform/platform-api/src/com/intellij/ui/components/ScrollBarPainter.java) |
-| `ToolWindowManager.registerToolWindow(String, RegisterToolWindowTaskBuilder)` | [False positive](https://youtrack.jetbrains.com/issue/MP-6705) from [Plugin Verifier](verifying_plugin_compatibility.md) |
-| `UtilKt.targetPresentation()` | [See Doc](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/navigation/util.kt) |
+| Internal API | Replacement |
+|-------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `AnAction.applyTextOverride()` | [](plugin_configuration_file.md#idea-plugin__actions__action__override-text) |
+| `ApplicationLoadListener` | See [](plugin_components.md#application-startup) |
+| `BuildNumber.currentVersion()` | Use `ApplicationInfo.getBuild()` |
+| `CompactVirtualFileSet` | Use `VfsUtilCore.createCompactVirtualFileSet()` |
+| `DefaultPicoContainer` | Use [extension points](plugin_extensions.md) and [services](plugin_services.md) |
+| `EdtDataContext` | [See Doc](%gh-ic%/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/EdtDataContext.kt) |
+| `ExperimentalUI.isNewUI()` | Use [`NewUI.isEnabled()`](%gh-ic%/platform/platform-api/src/com/intellij/ui/NewUI.java) |
+| `FileTypeIndex.NAME` | Use static methods in `FileTypeIndex` directly |
+| `IElementType.getDebugName()` | Override/use `IElementType.toString()` |
+| `IconLoader.CachedImageIcon` | Use methods exposed in `IconLoader` |
+| `IconLoader.LazyIcon` | Use `IconLoader.createLazy()` |
+| `IndexingDataKeys` | [See Doc](%gh-ic%/platform/core-impl/src/com/intellij/util/indexing/IndexingDataKeys.java) |
+| `Module.getModuleFile()` | [See Doc](%gh-ic%/platform/core-api/src/com/intellij/openapi/module/Module.java) |
+| `Module.getModuleFilePath()` | [See Doc](%gh-ic%/platform/core-api/src/com/intellij/openapi/module/Module.java) |
+| `Module.getModuleTypeName()` | [See Doc](%gh-ic%/platform/core-api/src/com/intellij/openapi/module/Module.java) |
+| `ModuleTypeManager.registerModuleType()` | Use instead. [`ModuleType`](%gh-ic%/platform/lang-core/src/com/intellij/openapi/module/ModuleType.java) |
+| `PathMacros.setMacro()` | Use . [`PathMacroContributor`](%gh-ic%/platform/core-api/src/com/intellij/openapi/application/PathMacroContributor.java) |
+| `PlatformUtils` | [See Doc](%gh-ic%/platform/core-api/src/com/intellij/util/PlatformUtils.java) |
+| `PluginClassLoader` | Cast to [`PluginAwareClassLoader`](%gh-ic%/platform/extensions/src/com/intellij/ide/plugins/cl/PluginAwareClassLoader.java) |
+| `PluginManager.getLogger()` | Use own logger, see [](ide_infrastructure.md#logging) |
+| `PreloadingActivity` | Use `StartupActivity.Background` ([docs](plugin_components.md#project-open)) with atomic flag to run only once during IDE lifetime |
+| `ProjectLibraryTable` | Use `LibraryTablesRegistrar.getLibraryTable()` |
+| `SVGLoader` | Use `ImageLoader.loadFromResource()` |
+| `ScrollBarPainter` | [See Doc](%gh-ic%/platform/platform-api/src/com/intellij/ui/components/ScrollBarPainter.java) |
+| `ToolWindowManager.registerToolWindow(String, RegisterToolWindowTaskBuilder)` | [False positive](https://youtrack.jetbrains.com/issue/MP-6705) from [Plugin Verifier](verifying_plugin_compatibility.md) |
+| `UtilKt.targetPresentation()` | [See Doc](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/navigation/util.kt) |
## Plugins
diff --git a/topics/appendix/api_notable/api_notable_list_2019.md b/topics/appendix/api_notable/api_notable_list_2019.md
index 53b6453bd..19ff6d95c 100644
--- a/topics/appendix/api_notable/api_notable_list_2019.md
+++ b/topics/appendix/api_notable/api_notable_list_2019.md
@@ -1,4 +1,4 @@
-
+
# Notable Changes in IntelliJ Platform and Plugins API 2019.*
@@ -21,7 +21,7 @@ Run task once (per project)
: Use `com.intellij.ide.util.RunOnceUtil` to run a task exactly once for application or per project.
Symbol completion in plain text editor (VCS Commit Message)
-: Contribute symbol names (classes, methods, ..) via `com.intellij.completion.plainTextSymbol` extension point (`com.intellij.codeInsight.completion.PlainTextSymbolCompletionContributor`).
+: Contribute symbol names (classes, methods, ...) via ([`PlainTextSymbolCompletionContributor`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/completion/PlainTextSymbolCompletionContributor.java)).
User-customizable date/time formatting
: Use `com.intellij.util.text.JBDateFormat#getFormatter()` to use configured format from Settings | Appearance & Behavior | System Settings | Date Formats.
@@ -55,13 +55,13 @@ New API for Editor Inlay Hints
: Provides background color in all Trees, Lists and ComboBoxes.
`com.intellij.openapi.startup.StartupActivity` background variant
-: Use new dedicated `com.intellij.backgroundPostStartupActivity` extension point (see Javadoc for `StartupActivity#BACKGROUND_POST_STARTUP_ACTIVITY`).
+: Use new dedicated (see Javadoc for `StartupActivity#BACKGROUND_POST_STARTUP_ACTIVITY`).
`com.intellij.codeHighlighting.TextEditorHighlightingPassFactory` registration
-: Use new dedicated `com.intellij.highlightingPassFactory` extension point.
+: Use new dedicated .
`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 filename matching, use instead (see [Sample](language_and_filetype.md#register-the-file-type)).
`@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.
diff --git a/topics/appendix/api_notable/api_notable_list_2020.md b/topics/appendix/api_notable/api_notable_list_2020.md
index b891227a4..cccb3aa38 100644
--- a/topics/appendix/api_notable/api_notable_list_2020.md
+++ b/topics/appendix/api_notable/api_notable_list_2020.md
@@ -23,23 +23,23 @@ Generating HTML fragments
: Use [`HtmlBuilder`](%gh-ic%/platform/util/src/com/intellij/openapi/util/text/HtmlBuilder.java) for generating formatted content, e.g., for [Documentation](documentation.md).
Extensible HTML Lexer/Parser
-: Implement [`HtmlEmbeddedContentSupport`](%gh-ic%/xml/xml-psi-impl/src/com/intellij/html/embedding/HtmlEmbeddedContentSupport.kt) and register in `com.intellij.html.embeddedContentSupport` extension point to embed arbitrary tokens into any tag or attribute.
+: Implement [ to embed arbitrary tokens into any tag or attribute.
Please note that old API from `com.intellij.lexer.BaseHtmlLexer` is no longer working.
Action System
: New features in [](action_system.md): `` works now for [``](plugin_configuration_file.md#idea-plugin__actions__group) as well, [``](plugin_configuration_file.md#idea-plugin__actions__action__synonym) provides alternative names when searching for actions, and groups can be excluded from search results.
Welcome Screen customization
-: To provide additional custom tabs, implement [`WelcomeTabFactory`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/wm/WelcomeTabFactory.java) and register in `com.intellij.welcomeTabFactory` extension point.
+: To provide additional custom tabs, implement [.
File Type association with the IDE
: To control file type association with the IDE in the operating system, implement [`OSFileIdeAssociation`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileTypes/OSFileIdeAssociation.java).
Reader Mode customization
-: Implement [`ReaderModeProvider`](%gh-ic%/platform/editor-ui-api/src/com/intellij/codeInsight/actions/ReaderModeProvider.kt) and register in `com.intellij.readerModeProvider` extension point to apply custom settings for files rendered in reader mode. Provide `com.intellij.codeInsight.actions.ReaderModeMatcher` to disable Reader Mode for particular set of files.
+: Implement [ to apply custom settings for files rendered in reader mode. Provide `com.intellij.codeInsight.actions.ReaderModeMatcher` to disable Reader Mode for particular set of files.
Text Editor customization
-: Implement [`TextEditorCustomizer`](%gh-ic%/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorCustomizer.kt) and register in `com.intellij.textEditorCustomizer` extension point to customize created editors.
+: Implement [ to customize created editors.
### JavaScript Plugin 2020.3
@@ -63,7 +63,7 @@ Constructor Injection in `Configurable` forbidden
: Added `VirtualFileManager.findFileByNioPath()`/`refreshAndFindFileByNioPath()`. See also `VirtualFile.toNioPath()`.
Tooltip descriptions for icons
-: Register resource bundle via `com.intellij.iconDescriptionBundle` extension point to provide tooltips automatically for all [`SimpleColoredComponent`](%gh-ic%/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java) renderers.
+: Register resource bundle via to provide tooltips automatically for all [`SimpleColoredComponent`](%gh-ic%/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java) renderers.
Specify incompatibility with Module
: A plugin can [mark itself incompatible](plugin_compatibility.md#declaring-incompatibility-with-module) if IDE contains specified module.
@@ -75,16 +75,16 @@ Support for WebP images
: The platform now bundles support for images in [WebP](https://en.wikipedia.org/wiki/WebP) format.
FileType mapping via hashbang (`#!`)
-: Specify `hashBangs` attribute in `com.intellij.fileType` extension point. [Issue](https://youtrack.jetbrains.com/issue/IDEA-175757)
+: Specify . [Issue](https://youtrack.jetbrains.com/issue/IDEA-175757)
Add information to About dialog
-: Implement [`AboutPopupDescriptionProvider`](%gh-ic%/platform/platform-impl/src/com/intellij/ide/AboutPopupDescriptionProvider.kt) and register in `com.intellij.aboutPopupDescriptionProvider` extension point.
+: Implement [.
Previewing Intention/Quick Fix
: To support preview in intention popup, suitable [`FileModifier`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/intention/FileModifier.java) must be provided (default implementation `FileModifier.getFileModifierForPreview()` works for most cases).
Delegate Run Anything/Terminal commands to IDE features
-: Switch to matching IDE feature by implementing [`TerminalShellCommandHandler`](%gh-ic%/platform/execution-impl/src/com/intellij/terminal/TerminalShellCommandHandler.kt) (`com.intellij.terminal.shellCommandHandler` extension point). [Blog post](https://blog.jetbrains.com/idea/2020/07/run-ide-features-from-the-terminal/)
+: Switch to matching IDE feature by implementing [). [Blog post](https://blog.jetbrains.com/idea/2020/07/run-ide-features-from-the-terminal/)
Deprecating JavaFX in favor of JCEF
: We recommend switching to [JCEF](embedded_browser_jcef.md), please see [blog post](https://blog.jetbrains.com/platform/2020/07/javafx-and-jcef-in-the-intellij-platform/) for details.
@@ -120,7 +120,7 @@ Refactoring dialog: builtin "Open in editor" option
: Set `addOpenInEditorCheckbox` constructor parameter to enable it in custom `RefactoringDialog` implementation.
Configurable status bar widgets
-: Use `com.intellij.statusBarWidgetFactory` extension point to provide widgets that can be disabled or reordered, see [](status_bar_widgets.md).
+: Use to provide widgets that can be disabled or reordered, see [](status_bar_widgets.md).
JCEF Support (_Experimental Feature_)
: Allows [embedding](embedded_browser_jcef.md) Chromium-based browser in the IDE.
diff --git a/topics/appendix/api_notable/api_notable_list_2021.md b/topics/appendix/api_notable/api_notable_list_2021.md
index 3535d8cd8..5f53ccb50 100644
--- a/topics/appendix/api_notable/api_notable_list_2021.md
+++ b/topics/appendix/api_notable/api_notable_list_2021.md
@@ -1,6 +1,6 @@
# Notable Changes in IntelliJ Platform and Plugins API 2021.*
-
+
List of known Notable API Changes in 2021.*
@@ -30,7 +30,9 @@ Constructor Injection disabled for Extensions
: Please obtain necessary components only when needed (logged as ERROR now).
Language Injection
-: Use [`LanguageInjectionContributor`](%gh-ic%/platform/core-api/src/com/intellij/lang/injection/general/LanguageInjectionContributor.java) (`com.intellij.languageInjectionContributor` EP) and [`LanguageInjectionPerformer`](%gh-ic%/platform/core-api/src/com/intellij/lang/injection/general/LanguageInjectionPerformer.java) (`com.intellij.languageInjectionPerformer` EP) to customize [language injection](language_injection.md#languageinjectioncontributor-and-languageinjectionperformer).
+: Use [`LanguageInjectionContributor`](%gh-ic%/platform/core-api/src/com/intellij/lang/injection/general/LanguageInjectionContributor.java) ()
+and [`LanguageInjectionPerformer`](%gh-ic%/platform/core-api/src/com/intellij/lang/injection/general/LanguageInjectionPerformer.java) ()
+to customize [language injection](language_injection.md#languageinjectioncontributor-and-languageinjectionperformer).
### IntelliJ IDEA 2021.2
@@ -45,7 +47,7 @@ _Add unambiguous imports on the fly_ for custom languages
: Override [`ReferenceImporter#isAddUnambiguousImportsOnTheFlyEnabled()`](%gh-ic%/platform/analysis-impl/src/com/intellij/codeInsight/daemon/ReferenceImporter.java) and provide corresponding user setting. Implement `HintAction` with `fixSilently()` and hook it up to highlighting as a quick fix for unresolved reference.
Ability to override encoding per `VirtualFile`
-: Implement [`FileEncodingProvider`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/encoding/FileEncodingProvider.java) and register in `com.intellij.fileEncodingProvider` extension point.
+: Implement [`FileEncodingProvider`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/encoding/FileEncodingProvider.java) and register in .
[JCEF](embedded_browser_jcef.md): wrapper for `CefBrowser`
: [`JBCefOsrHandlerBrowser`](%gh-ic%/platform/ui.jcef/jcef/JBCefOsrHandlerBrowser.java) forwards to custom `CefRenderHandler`, e.g., for off-screen rendering.
diff --git a/topics/appendix/api_notable/api_notable_list_2022.md b/topics/appendix/api_notable/api_notable_list_2022.md
index f8b9e9683..61d1c5a3a 100644
--- a/topics/appendix/api_notable/api_notable_list_2022.md
+++ b/topics/appendix/api_notable/api_notable_list_2022.md
@@ -16,7 +16,7 @@ Display of previews for Intentions and Quick Fixes
: Intentions and Quick Fix actions now display a preview for the code changes. Read [this article](code_intentions_preview.md) to learn more about this feature.
Specify language for Intention
-: Specify `` in `com.intellij.intentionAction` EP registration to avoid instantiating language-specific intentions in non-relevant places.
+: Specify `` in registration to avoid instantiating language-specific intentions in non-relevant places.
"Heavy" Brace Matching
: Alternative extension point to implement [](additional_minor_features.md#brace-matching) in background thread.
diff --git a/topics/appendix/resources/custom_plugin_repository.md b/topics/appendix/resources/custom_plugin_repository.md
index 17225977a..95242b9a1 100644
--- a/topics/appendix/resources/custom_plugin_repository.md
+++ b/topics/appendix/resources/custom_plugin_repository.md
@@ -1,4 +1,4 @@
-
+
# Custom Plugin Repository
@@ -36,7 +36,8 @@ To use a plugin repository _other than_ the [JetBrains Marketplace](https://plug
To avoid collisions between private plugins and those hosted on JetBrains Marketplace, an organization can [reserve plugin IDs](https://plugins.jetbrains.com/docs/marketplace/reserved-plugin-ids.html).
-To provide custom authentication, implement [`PluginRepositoryAuthProvider`](%gh-ic%/platform/platform-impl/src/com/intellij/ide/plugins/auth/PluginRepositoryAuthProvider.java) registered in `com.intellij.pluginRepositoryAuthProvider` extension point.
+To provide custom authentication, implement [`PluginRepositoryAuthProvider`](%gh-ic%/platform/platform-impl/src/com/intellij/ide/plugins/auth/PluginRepositoryAuthProvider.java)
+registered in .
## Describing Plugins in `updatePlugins.xml` File
diff --git a/topics/appendix/resources/explore_api.md b/topics/appendix/resources/explore_api.md
index 76263f2dd..34b3cbeed 100644
--- a/topics/appendix/resources/explore_api.md
+++ b/topics/appendix/resources/explore_api.md
@@ -121,7 +121,7 @@ to limit your searches, for example, to only idea-xxx.jar files.
### Inspect the Contents of Packages
If you open an EP's interface or abstract class, it is always helpful to inspect the contents of its package.
-For instance, the interface of the `com.intellij.sdkType` EP lives in the `com.intellij.openapi.projectRoots` package.
+For instance, the interface of the lives in the `com.intellij.openapi.projectRoots` package.
Inspecting the contents of this package shows many related classes that will be useful if you are implementing this feature.
### Search for Symbol Names
diff --git a/topics/basics/architectural_overview/file_view_providers.md b/topics/basics/architectural_overview/file_view_providers.md
index 1977841ec..6ac98971f 100644
--- a/topics/basics/architectural_overview/file_view_providers.md
+++ b/topics/basics/architectural_overview/file_view_providers.md
@@ -1,4 +1,4 @@
-
+
# File View Providers
@@ -28,7 +28,8 @@ A `FileViewProvider` instance corresponds to a single `VirtualFile`, a single `D
## How do I extend the `FileViewProvider`?
-To create a file type that has multiple interspersing trees for different languages, a plugin must contain an extension to the `com.intellij.fileType.fileViewProviderFactory` extension point.
+To create a file type that has multiple interspersing trees for different languages, a plugin must contain an extension to
+the .
Implement [`FileViewProviderFactory`](%gh-ic%/platform/core-api/src/com/intellij/psi/FileViewProviderFactory.java) and return your `FileViewProvider` implementation from `createFileViewProvider()` method.
diff --git a/topics/basics/architectural_overview/psi_files.md b/topics/basics/architectural_overview/psi_files.md
index 38057761c..2acc9ef7c 100644
--- a/topics/basics/architectural_overview/psi_files.md
+++ b/topics/basics/architectural_overview/psi_files.md
@@ -61,7 +61,8 @@ To save the PSI file to disk, use its parent directory's [`PsiDirectory.add()`](
## How do I get notified when PSI files change?
`PsiManager.addPsiTreeChangeListener()` allows you to receive notifications about all changes to the PSI tree of a project.
-Alternatively, register [`PsiTreeChangeListener`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiTreeChangeListener.java) in `com.intellij.psi.treeChangeListener` extension point.
+Alternatively, register [`PsiTreeChangeListener`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiTreeChangeListener.java)
+in .
> Please see [`PsiTreeChangeEvent`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiTreeChangeEvent.java) Javadoc for common problems when dealing with PSI events.
>
diff --git a/topics/basics/architectural_overview/psi_references.md b/topics/basics/architectural_overview/psi_references.md
index 729e61fdf..6bd529419 100644
--- a/topics/basics/architectural_overview/psi_references.md
+++ b/topics/basics/architectural_overview/psi_references.md
@@ -1,6 +1,6 @@
-# PSI References
+
-
+# PSI References
PSI Reference represents a link from a usage of a particular element in the code to the corresponding declaration.
@@ -58,7 +58,7 @@ References are also often contributed to non-code files, such as XML or JSON.
Contributing references is one of the most common ways to extend an existing language.
For example, your plugin can contribute references to Java code, even though the Java PSI is part of the platform and not defined in your plugin.
-Implement [`PsiReferenceContributor`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiReferenceContributor.java) registered in `com.intellij.psi.referenceContributor` extension point.
+Implement [`PsiReferenceContributor`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiReferenceContributor.java) registered in .
Attribute `language` should be set to the Language ID where this contributor applies to.
The exact places to contribute references to are then specified using [](element_patterns.md) in calls to `PsiReferenceRegistrar.registerReferenceProvider()`.
diff --git a/topics/basics/architectural_overview/virtual_file.md b/topics/basics/architectural_overview/virtual_file.md
index 38149ac52..2e8007dc5 100644
--- a/topics/basics/architectural_overview/virtual_file.md
+++ b/topics/basics/architectural_overview/virtual_file.md
@@ -84,7 +84,8 @@ Use [`ProjectLocator`](%gh-ic%/platform/core-api/src/com/intellij/openapi/projec
## How do I extend VFS?
-To provide an alternative file system implementation (for example, an FTP file system), implement the [`VirtualFileSystem`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileSystem.java) class (most likely you'll also need to implement `VirtualFile`), and register your implementation via `com.intellij.virtualFileSystem` extension point (2019.2 and later) or [application component](plugin_components.md) for earlier versions.
+To provide an alternative file system implementation (for example, an FTP file system), implement the [`VirtualFileSystem`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileSystem.java) class (most likely you'll also need to implement `VirtualFile`),
+and register your implementation via .
To hook into operations performed in the local file system (for example, when developing a version control system integration that needs custom rename/move handling), implement [`LocalFileOperationsHandler`](%gh-ic%/platform/analysis-api/src/com/intellij/openapi/vfs/LocalFileOperationsHandler.java) and register it via `LocalFileSystem.registerAuxiliaryFileOperationsHandler()`.
diff --git a/topics/basics/execution/execution.md b/topics/basics/execution/execution.md
index f4465a738..0a1987caf 100644
--- a/topics/basics/execution/execution.md
+++ b/topics/basics/execution/execution.md
@@ -78,10 +78,10 @@ The three default executors provided by the IntelliJ Platform are:
* [`CoverageExecutor`](%gh-ic%/plugins/coverage-common/src/com/intellij/coverage/CoverageExecutor.java) _(Run with Coverage)_
Custom implementations are rarely required (it may be necessary, e.g., when a profiler integration is implemented).
-Executor implementations are registered in the `com.intellij.executor` extension point (EP).
+Executor implementations are registered in the .
[`ProgramRunner`](%gh-ic%/platform/execution/src/com/intellij/execution/runners/ProgramRunner.java) is responsible for the [execution workflow](#execution-workflow) of a `RunProfile` with a certain `Executor`.
-`ProgramRunner` implementations are registered in the `com.intellij.programRunner` EP.
+.
[`ExecutionEnvironment`](%gh-ic%/platform/execution/src/com/intellij/execution/runners/ExecutionEnvironment.java) object aggregates all the objects and settings required to execute the process.
It is used by the `ProgramRunner.execute()` method.
@@ -159,7 +159,8 @@ Console [`Filter`](%gh-ic%/platform/execution/src/com/intellij/execution/filters
To attach a filter to the console, use `CommandLineState.addConsoleFilters()` or [`TextConsoleBuilder.addFilter()`](%gh-ic%/platform/execution/src/com/intellij/execution/filters/TextConsoleBuilder.java) if the console is created manually.
Two standard filter implementations are [`RegexpFilter`](%gh-ic%/platform/lang-api/src/com/intellij/execution/filters/RegexpFilter.java) and [`UrlFilter`](%gh-ic%/platform/execution-impl/src/com/intellij/execution/filters/UrlFilter.java).
-Console filters can be also provided by implementing [`ConsoleFilterProvider`](%gh-ic%/platform/lang-api/src/com/intellij/execution/filters/ConsoleFilterProvider.java) and registering it in `com.intellij.consoleFilterProvider` EP.
+Console filters can be also provided by implementing [`ConsoleFilterProvider`](%gh-ic%/platform/lang-api/src/com/intellij/execution/filters/ConsoleFilterProvider.java) and registering
+it in .
## Listening for Execution Events
diff --git a/topics/basics/execution/run_configurations.md b/topics/basics/execution/run_configurations.md
index 4be9c67bd..c149b943e 100644
--- a/topics/basics/execution/run_configurations.md
+++ b/topics/basics/execution/run_configurations.md
@@ -1,4 +1,4 @@
-
+
# Run Configurations
@@ -57,7 +57,7 @@ A single configuration type can have multiple configuration factories, e.g., the
To see the list of configuration types available in the IDE, go to Run \| Edit Configurations and click the Add button (+ icon).
-`ConfigurationType` implementations are registered in the `com.intellij.configurationType` extension point (EP).
+`ConfigurationType` implementations are registered in the .
Standard base classes for configuration type implementations are:
* [`SimpleConfigurationType`](%gh-ic%/platform/execution/src/com/intellij/execution/configurations/runConfigurationType.kt) - used for configuration types that have a single configuration factory.
@@ -130,7 +130,8 @@ If a plugin requires creating run configurations programmatically, .e.g, from a
## Creating a Run Configuration from Context
Run configurations can be created and run from context, e.g., by right-clicking an application main method, a test class/method, etc., directly in the editor or the project view.
-This is achieved by implementing [`LazyRunConfigurationProducer`](%gh-ic%/platform/lang-api/src/com/intellij/execution/actions/LazyRunConfigurationProducer.kt) and registering it in `com.intellij.runConfigurationProducer` EP.
+This is achieved by implementing [`LazyRunConfigurationProducer`](%gh-ic%/platform/lang-api/src/com/intellij/execution/actions/LazyRunConfigurationProducer.kt) and registering
+it in .
The extension requires implementing the following methods:
* `getConfigurationFactory()` - returns the factory creating run configurations of the type specified in the extension class implementation.
@@ -227,8 +228,8 @@ Plugins can modify existing run configurations before they are run, e.g., by add
However, there is no single platform-wide extension point, and different IDEs provide different configuration base classes and extension points, allowing for their modifications.
To see what is possible in your case, check the [`RunConfigurationExtensionBase`](%gh-ic%/platform/execution/src/com/intellij/execution/configuration/RunConfigurationExtensionBase.java) inheritors.
Examples:
-* [`RunConfigurationExtension`](%gh-ic%/java/execution/impl/src/com/intellij/execution/RunConfigurationExtension.java) implementations registered in `com.intellij.runConfigurationExtension` EP allow for modifying Java run configurations extending [`RunConfigurationBase`](%gh-ic%/platform/execution/src/com/intellij/execution/configurations/RunConfigurationBase.java).
-* [`PythonRunConfigurationExtension`](%gh-ic%/python/src/com/jetbrains/python/run/PythonRunConfigurationExtension.java) implementations registered in `Pythonid.runConfigurationExtension` EP allow for modifying configuration extending [`AbstractPythonRunConfiguration`](%gh-ic%/python/src/com/jetbrains/python/run/AbstractPythonRunConfiguration.java)
+* [`RunConfigurationExtension`](%gh-ic%/java/execution/impl/src/com/intellij/execution/RunConfigurationExtension.java) implementations registered in allow for modifying Java run configurations extending [`RunConfigurationBase`](%gh-ic%/platform/execution/src/com/intellij/execution/configurations/RunConfigurationBase.java).
+* [`PythonRunConfigurationExtension`](%gh-ic%/python/src/com/jetbrains/python/run/PythonRunConfigurationExtension.java) implementations registered in allow for modifying configuration extending [`AbstractPythonRunConfiguration`](%gh-ic%/python/src/com/jetbrains/python/run/AbstractPythonRunConfiguration.java)
etc.
## Referencing Environment Variables in Run Configurations
@@ -243,7 +244,8 @@ To substitute variable references with the actual references, it is required to
Sometimes, it is necessary to perform specific tasks before a configuration is actually run, e.g., build the project, run a build tool preparation task, launch a web browser, etc.
Plugins can provide custom tasks that can be added by users to a created run configuration.
-To provide a custom task, implement [`BeforeRunTaskProvider`](%gh-ic%/platform/execution/src/com/intellij/execution/BeforeRunTaskProvider.java) and register it in `com.intellij.stepsBeforeRunProvider` EP.
+To provide a custom task, implement [`BeforeRunTaskProvider`](%gh-ic%/platform/execution/src/com/intellij/execution/BeforeRunTaskProvider.java) and register it
+in .
The provider implementation is responsible for creating a task instance for a given run configuration and executing the task.
If access to indexes is not required, it can be marked [dumb aware](indexing_and_psi_stubs.md#DumbAwareAPI).
@@ -274,4 +276,4 @@ See their Javadocs for the details.
### Providing Custom Macros
-If the predefined list of macros is insufficient, a plugin can provide custom macros by extending [`Macro`](%gh-ic%/platform/macro/src/com/intellij/ide/macro/Macro.java) and registering it in the `com.intellij.macro` EP.
+If the predefined list of macros is insufficient, a plugin can provide custom macros by extending [.
diff --git a/topics/basics/getting_started/theme/creating_theme_project.md b/topics/basics/getting_started/theme/creating_theme_project.md
index 8f3b569b5..ed936e7cb 100644
--- a/topics/basics/getting_started/theme/creating_theme_project.md
+++ b/topics/basics/getting_started/theme/creating_theme_project.md
@@ -1,4 +1,4 @@
-
+
# Creating a Theme Project
@@ -80,5 +80,5 @@ The wizard can be used for both DevKit-based and Gradle-based plugins.
## Bundling Color Schemes
-Use `com.intellij.bundledColorScheme` extension point specifying the `path` to the color scheme XML file (without `.xml` suffix).
+Use specifying the `path` to the color scheme XML file (without `.xml` suffix).
Specify attribute `id` for this extension in plugin.xml matching its `name` attribute value from the color scheme XML.
diff --git a/topics/basics/ide_infrastructure.md b/topics/basics/ide_infrastructure.md
index 645d40b55..70b098443 100644
--- a/topics/basics/ide_infrastructure.md
+++ b/topics/basics/ide_infrastructure.md
@@ -85,7 +85,7 @@ For the latter, reporting is disabled by default — instead, there's an option
To let users report such errors to the vendor, plugins can use one of the solutions:
- Use [JetBrains Exception Analyzer (EA)](https://plugins.jetbrains.com/docs/marketplace/exception-analyzer.html) that sends errors to the backend provided by JetBrains (2023.3+).
-- Implement custom [`ErrorReportSubmitter`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/diagnostic/ErrorReportSubmitter.java) registered in `com.intellij.errorHandler` extension point.
+- Implement custom [`ErrorReportSubmitter`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/diagnostic/ErrorReportSubmitter.java) registered in .
See [IntelliJ Platform Explorer](https://jb.gg/ipe?extensions=com.intellij.errorHandler) for existing implementations — ranging from pre-filling web-based issue tracker forms to fully automated submission to log monitoring systems.
This [tutorial](https://www.plugin-dev.com/intellij/general/error-reporting/) also offers a working solution for using _Sentry_.
@@ -108,7 +108,7 @@ For paid plugins, see also [Marketplace docs](https://plugins.jetbrains.com/docs
## Context Help
-To show custom context web-based help for your plugin's functionality (e.g., for [dialogs](dialog_wrapper.md)), provide [`WebHelpProvider`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/help/WebHelpProvider.java) registered in `com.intellij.webHelpProvider` extension point.
+To show custom context web-based help for your plugin's functionality (e.g., for [dialogs](dialog_wrapper.md)), provide [`WebHelpProvider`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/help/WebHelpProvider.java) registered in .
> To [localize](providing_translations.md) the help page URL, retrieve the current locale and language tag from the [dynamic bundle](providing_translations.md#getting-the-current-locale-programmatically).
@@ -157,7 +157,7 @@ To suggest other relevant plugins, use [`PluginsAdvertiser.installAndEnable()`](
### Deprecating a Plugin
-To suggest replacing the currently installed deprecated plugin with the new one, implement [`PluginReplacement`](%gh-ic%/platform/platform-api/src/com/intellij/ide/plugins/PluginReplacement.java) registered in `com.intellij.pluginReplacement` extension point.
+To suggest replacing the currently installed deprecated plugin with the new one, implement [`PluginReplacement`](%gh-ic%/platform/platform-api/src/com/intellij/ide/plugins/PluginReplacement.java) registered in .
## Network
diff --git a/topics/basics/indexing_and_psi_stubs/file_based_indexes.md b/topics/basics/indexing_and_psi_stubs/file_based_indexes.md
index a3c7b2064..89313f4b6 100644
--- a/topics/basics/indexing_and_psi_stubs/file_based_indexes.md
+++ b/topics/basics/indexing_and_psi_stubs/file_based_indexes.md
@@ -1,4 +1,4 @@
-
+
# File-Based Indexes
@@ -29,7 +29,7 @@ When accessing an index, specify the key you're interested in and get back the l
> A relatively simple file-based index implementation is the [UI Designer bound forms index](%gh-ic%/plugins/ui-designer/src/com/intellij/uiDesigner/binding/FormClassIndex.java), storing FQN of bound implementation class for [GUI Designer](https://www.jetbrains.com/help/idea/gui-designer-basics.html) .form files.
>
-Each specific index implementation is a class extending [`FileBasedIndexExtension`](%gh-ic%/platform/indexing-api/src/com/intellij/util/indexing/FileBasedIndexExtension.java) registered via `com.intellij.fileBasedIndex` extension point.
+Each specific index implementation is a class extending [`FileBasedIndexExtension`](%gh-ic%/platform/indexing-api/src/com/intellij/util/indexing/FileBasedIndexExtension.java) registered in .
An implementation of a file-based index consists of the following main parts:
diff --git a/topics/basics/indexing_and_psi_stubs/stub_indexes.md b/topics/basics/indexing_and_psi_stubs/stub_indexes.md
index 30660c3fa..ea0c1a9d1 100644
--- a/topics/basics/indexing_and_psi_stubs/stub_indexes.md
+++ b/topics/basics/indexing_and_psi_stubs/stub_indexes.md
@@ -1,4 +1,4 @@
-
+
# Stub Indexes
@@ -95,7 +95,7 @@ Keys in stub indexes are typically strings (such as class names); other data typ
A stub index is a class which extends [`AbstractStubIndex`](%gh-ic%/platform/indexing-api/src/com/intellij/psi/stubs/AbstractStubIndex.java).
In the most common case, when the key type is `String`, use a more specific base class, namely [`StringStubIndexExtension`](%gh-ic%/platform/indexing-api/src/com/intellij/psi/stubs/StringStubIndexExtension.java).
-Stub index implementation classes are registered in the `com.intellij.stubIndex` extension point.
+Stub index implementation classes are registered in the .
To put data into an index, implement `IStubElementType.indexStub()` ([example: `JavaClassElementType.indexStub()`](%gh-ic%/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java)).
This method accepts an [`IndexSink`](%gh-ic%/platform/core-api/src/com/intellij/psi/stubs/IndexSink.java) as a parameter and puts in the index ID and the key for each index in which the element should be stored.
diff --git a/topics/basics/persisting_state_of_components.md b/topics/basics/persisting_state_of_components.md
index 10829f7e8..e74a4c52e 100644
--- a/topics/basics/persisting_state_of_components.md
+++ b/topics/basics/persisting_state_of_components.md
@@ -317,7 +317,7 @@ This is not recommended and should be avoided whenever possible.
To disable the expansion of path macros ([`PathMacro`](%gh-ic%/platform/macro/src/com/intellij/ide/macro/PathMacro.java))
in stored values, implement [`PathMacroFilter`](%gh-ic%/jps/model-serialization/src/com/intellij/openapi/application/PathMacroFilter.java)
-and register in `com.intellij.pathMacroFilter` extension point.
+and register in .
### Migrating Persisted Values
diff --git a/topics/basics/plugin_structure/plugin_components.md b/topics/basics/plugin_structure/plugin_components.md
index 4ab747ecc..81fee65ee 100644
--- a/topics/basics/plugin_structure/plugin_components.md
+++ b/topics/basics/plugin_structure/plugin_components.md
@@ -1,4 +1,4 @@
-
+
# Components (Deprecated)
@@ -48,7 +48,7 @@ See also [Running Tasks Once](ide_infrastructure.md#running-tasks-once).
-Using [Kotlin coroutines](kotlin_coroutines.md), implement [`ProjectActivity`](%gh-ic%/platform/core-api/src/com/intellij/openapi/startup/StartupActivity.kt) and register in `com.intellij.postStartupActivity` extension point.
+Using [Kotlin coroutines](kotlin_coroutines.md), implement [`ProjectActivity`](%gh-ic%/platform/core-api/src/com/intellij/openapi/startup/StartupActivity.kt) and register in .
Examples:
- [`PowerSaveModeNotifier`](%gh-ic%/platform/lang-impl/src/com/intellij/ide/actions/PowerSaveModeNotifier.kt)
- [`TipOfTheDayStartupActivity`](%gh-ic%/platform/tips-of-the-day/src/com/intellij/ide/TipOfTheDayStartupActivity.kt)
diff --git a/topics/basics/plugin_structure/plugin_extensions.md b/topics/basics/plugin_structure/plugin_extensions.md
index 7fe964f8b..ad5d6d634 100644
--- a/topics/basics/plugin_structure/plugin_extensions.md
+++ b/topics/basics/plugin_structure/plugin_extensions.md
@@ -12,8 +12,8 @@ _Extensions_ are the most common way for a plugin to extend the IntelliJ Platfor
The following are some of the most common tasks achieved using extensions:
-* The `com.intellij.toolWindow` extension point allows plugins to add [tool windows](tool_windows.md) (panels displayed at the sides of the IDE user interface);
-* The `com.intellij.applicationConfigurable` and `com.intellij.projectConfigurable` extension points allow plugins to add pages to the [Settings dialog](settings.md);
+* The allows plugins to add [tool windows](tool_windows.md) (panels displayed at the sides of the IDE user interface);
+* The and allow plugins to add pages to the [Settings dialog](settings.md);
* [Custom language plugins](custom_language_support.md) use many extension points to extend various language support features in the IDE.
There are more than 1600 extension points available in the platform and the bundled plugins, allowing customizing different parts of the IDE behavior.
diff --git a/topics/intro/sdk_style.md b/topics/intro/sdk_style.md
index a2b746a51..640c2906a 100644
--- a/topics/intro/sdk_style.md
+++ b/topics/intro/sdk_style.md
@@ -171,11 +171,7 @@ In-paragraph code fragments and IntelliJ Platform APIs are formatted according t
#### Extension Points
-* Extension point name must be followed by "extension point (EP)" for the first occurrence on a page.
- All following occurrences can use "EP" suffix.
-* Use the FQN when first introducing an [extension point](plugin_extension_points.md) (EP) on a page.
- Rather than `stubIndex`, introduce `com.intellij.stubIndex`.
- Later mentions on the page can be `stubIndex`.
+Use `` snippet to introduce EP.
#### XML
diff --git a/topics/products/idea/spring_api.md b/topics/products/idea/spring_api.md
index 06de6ec97..d908a1306 100644
--- a/topics/products/idea/spring_api.md
+++ b/topics/products/idea/spring_api.md
@@ -1,4 +1,4 @@
-
+
# Spring API
@@ -114,7 +114,7 @@ _Version 14_: implement `SpringInfrastructureBean`, such beans obtain a special
All support for XML-based Spring configuration files is provided via [DOM-API](xml_dom_api.md).
#### Add Support for Additional Spring Namespace
-See `com.intellij.spring.customNamespaces` EP, registered namespace-key must match the one registered with your DOM elements via `@Namespace`.
+See , registered namespace-key must match the one registered with your DOM elements via `@Namespace`.
Register available elements via standard `DomExtender` EP or `com.intellij.spring.dom.SpringCustomNamespaces#registerExtensions` (Version 14).
Please pay attention to `getModelVersion` and `getStubVersion` (see Javadoc).
@@ -150,7 +150,8 @@ See `com.intellij.spring.spi.SpringSpiManager`.
### IDE Features
#### Add Inspections to Spring Validator
-Add additional inspections (e.g. for custom namespace) to Spring Validator (*Settings|Compiler|Validation*) via `com.intellij.spring.SpringInspectionsRegistry$Contributor` in `com.intellij.spring.inspectionsRegistryContributor` extension point.
+Add additional inspections (e.g. for custom namespace) to Spring Validator (*Settings|Compiler|Validation*) via `com.intellij.spring.SpringInspectionsRegistry$Contributor`
+in .
#### Add Additional Files to Spring Validator
_Version 14.1_
@@ -195,5 +196,5 @@ Custom `@ConditionalOn...` annotations implementing `com.intellij.spring.boot.mo
`com.intellij.spring.boot.initializr.SpringInitializrModuleBuilderPostTask` allows performing custom setup steps after creation of module (e.g. setup integration with build system).
### Endpoint Tab
-Use `com.intellij.spring.boot.run.endpoint` extension point to add custom actuator endpoint tabs.
-Any settings should be exposed in "Spring Boot" settings tab via `com.intellij.spring.boot.run.endpointTabConfigurable` EP.
+Use to add custom actuator endpoint tabs.
+Any settings should be exposed in "Spring Boot" settings tab via .
diff --git a/topics/products/phpstorm/php_open_api_php_type_providers.md b/topics/products/phpstorm/php_open_api_php_type_providers.md
index cf2adb358..458f35922 100644
--- a/topics/products/phpstorm/php_open_api_php_type_providers.md
+++ b/topics/products/phpstorm/php_open_api_php_type_providers.md
@@ -1,4 +1,4 @@
-
+
# PHP Type Providers
@@ -9,7 +9,8 @@ specific PSI elements.
For example, `com.jetbrains.php.lang.psi.resolve.types.PhpArrayAccessTP` is responsible for inferring the types of expressions like `$arr[10]`.
There are dozens of such providers, and they all work one after another to provide type information when needed.
-All providers inherit from `com.jetbrains.php.lang.psi.resolve.types.PhpTypeProvider4`, which is registered in the `com.jetbrains.php.typeProvider4` extension point.
+All providers inherit from `com.jetbrains.php.lang.psi.resolve.types.PhpTypeProvider4`, which is registered in
+the .
## Types in PhpStorm
@@ -297,7 +298,7 @@ public class PhpUnitFiledInitializedInSetUpMethodsTP implements PhpTypeProvider4
### Register the `PhpUnitFiledInitializedInSetUpMethodsTP`
The `PhpUnitFiledInitializedInSetUpMethodsTP` implementation is registered with the IntelliJ Platform in the
-plugin configuration file using the `com.jetbrains.php.typeProvider4` extension point.
+plugin configuration file using the .
```xml
diff --git a/topics/reference_guide/custom_language_support/additional_minor_features.md b/topics/reference_guide/custom_language_support/additional_minor_features.md
index 11b566125..85f566379 100644
--- a/topics/reference_guide/custom_language_support/additional_minor_features.md
+++ b/topics/reference_guide/custom_language_support/additional_minor_features.md
@@ -1,4 +1,4 @@
-
+
# Additional Minor Features
@@ -35,7 +35,7 @@ See also [](#recognizing-complex-multi-block-expressions).
If the brace matching is "too heavy" and should not be executed in [EDT](threading_model.md), implement
[`HeavyBraceHighlighter`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HeavyBraceHighlighter.java)
-and register in `com.intellij.heavyBracesHighlighter` extension point.
+and register in .
### Quote Handling
@@ -102,7 +102,7 @@ Can be [](indexing_and_psi_stubs.md#DumbAwareAPI) (2024.3+).
EP: `com.intellij.indexPatternSearch`
-Additional places can be provided via [`IndexPatternSearch`](%gh-ic%/platform/indexing-api/src/com/intellij/psi/search/searches/IndexPatternSearch.java) registered in `com.intellij.indexPatternSearch` extension point.
+Additional places can be provided via [.
### Context Info
@@ -220,7 +220,7 @@ which shows how the project name is added to the editor tab for Gradle files.
EP: `com.intellij.problemHighlightFilter`, `com.intellij.problemFileHighlightFilter`
[`ProblemHighlightFilter`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/daemon/ProblemHighlightFilter.java) and
-the `com.intellij.problemFileHighlightFilter` EP (which implements
+the (which implements
[`Condition`](%gh-ic%/platform/util/src/com/intellij/openapi/util/Condition.java))
are used to filter out files that should not be error-highlighted because they are, e.g., outside
the current project scope.
diff --git a/topics/reference_guide/custom_language_support/code_completion.md b/topics/reference_guide/custom_language_support/code_completion.md
index c120db58e..cb28021f9 100644
--- a/topics/reference_guide/custom_language_support/code_completion.md
+++ b/topics/reference_guide/custom_language_support/code_completion.md
@@ -1,4 +1,4 @@
-
+
# Code Completion
@@ -38,7 +38,7 @@ To provide completion variants by a `PsiSymbolReference` implement
### Contributor-Based Completion
Implementing the [`CompletionContributor`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/completion/CompletionContributor.java) interface gives you the greatest control over the operation of code completion for your language.
-Register in `com.intellij.completion.contributor` extension point and specify `language` attribute (unless it works on any supported language).
+Register in and specify `language` attribute (unless it works on any supported language).
> Note that the Javadoc of that class contains a detailed FAQ for implementing code completion.
>
diff --git a/topics/reference_guide/custom_language_support/code_formatting.md b/topics/reference_guide/custom_language_support/code_formatting.md
index 7b4d34ca3..460bf6d7f 100644
--- a/topics/reference_guide/custom_language_support/code_formatting.md
+++ b/topics/reference_guide/custom_language_support/code_formatting.md
@@ -1,4 +1,4 @@
-
+
# Code Formatter
@@ -41,7 +41,7 @@ On the other hand, spacing elements should never be covered by blocks unless the
To format a file or a file fragment, the following steps are required:
* Implement [`FormattingModelBuilder`](%gh-ic%/platform/code-style-api/src/com/intellij/formatting/FormattingModelBuilder.java)
- and register it as `com.intellij.lang.formatter` extension point in the plugin.xml.
+ and register it as in the plugin.xml.
* The main purpose of the formatting model builder is its `createModel()` method that must provide a
[`FormattingModel`](%gh-ic%/platform/code-style-api/src/com/intellij/formatting/FormattingModel.java) necessary for the framework to format the document.
As an argument, it receives a [`FormattingContext`](%gh-ic%/platform/code-style-api/src/com/intellij/formatting/FormattingContext.java) which
@@ -202,7 +202,8 @@ Allows executing additional processing before the actual formatting is performed
For example, it can be used to adjust the formatting range or modify the code by adding, removing, or converting elements like braces, semicolons, quotes, etc.
All the introduced changes will be handled by the main formatting step.
-To register a formatting pre-processor, a plugin has to provide an implementation of [`PreFormatProcessor`](%gh-ic%/platform/code-style-api/src/com/intellij/psi/impl/source/codeStyle/PreFormatProcessor.java) and register it in the `com.intellij.preFormatProcessor` extension point.
+To register a formatting pre-processor, a plugin has to provide an implementation of [`PreFormatProcessor`](%gh-ic%/platform/code-style-api/src/com/intellij/psi/impl/source/codeStyle/PreFormatProcessor.java)
+and register it in the .
**Example:**
[`JsonTrailingCommaRemover`](%gh-ic%/json/split/src/com/intellij/json/formatter/JsonTrailingCommaRemover.java) removing trailing commas in JSON files
@@ -212,7 +213,8 @@ To register a formatting pre-processor, a plugin has to provide an implementatio
It is similar to the pre-processor but is run after the actual formatting is performed.
It can be used for adding, removing, or converting elements like braces, semicolons, quotes, changing letter-cases, etc.
-To register a formatting post-processor, a plugin has to provide an implementation of [`PostFormatProcessor`](%gh-ic%/platform/code-style-api/src/com/intellij/psi/impl/source/codeStyle/PostFormatProcessor.java) and register it in the `com.intellij.postFormatProcessor` extension point.
+To register a formatting post-processor, a plugin has to provide an implementation of [`PostFormatProcessor`](%gh-ic%/platform/code-style-api/src/com/intellij/psi/impl/source/codeStyle/PostFormatProcessor.java)
+and register it in the .
**Example:**
[`TrailingCommaPostFormatProcessor`](%gh-ic%/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/formatter/TrailingCommaPostFormatProcessor.kt) inserting trailing commas in Kotlin files
@@ -227,7 +229,7 @@ See [`Rearranger`](%gh-ic%/platform/code-style-api/src/com/intellij/psi/codeStyl
To set the default indent size for a plugin's language and allow user configuration of tab and indent sizes,
implement the [`FileTypeIndentOptionsProvider`](%gh-ic%/platform/lang-api/src/com/intellij/psi/codeStyle/FileTypeIndentOptionsProvider.java)
-interface and register it at the `com.intellij.fileTypeIndentOptionsProvider` extension point.
+interface and register it at the .
The return value of `createIndentOptions()` sets the default indent size.
diff --git a/topics/reference_guide/custom_language_support/code_inspections_and_intentions.md b/topics/reference_guide/custom_language_support/code_inspections_and_intentions.md
index 43a762efe..71fbb15bb 100644
--- a/topics/reference_guide/custom_language_support/code_inspections_and_intentions.md
+++ b/topics/reference_guide/custom_language_support/code_inspections_and_intentions.md
@@ -41,12 +41,13 @@ If none of that is required and the analysis only needs to run in the active edi
A [custom language plugin](custom_language_support.md) providing many inspections (>100) can register the default [`PsiElementVisitor`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiElementVisitor.java)
-for its language in `com.intellij.inspection.basicVisitor` extension point to optimize processing.
+for its language in to optimize processing.
## Intentions
The code intentions for custom languages also use the standard API for intentions.
-The intention classes need to implement the [`IntentionAction`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/intention/IntentionAction.java) interface and are registered using the `com.intellij.intentionAction` extension point.
+The intention classes need to implement the [`IntentionAction`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/intention/IntentionAction.java) interface
+and are registered using the .
**Examples:**
- [Code Intentions Tutorial](code_intentions.md)
diff --git a/topics/reference_guide/custom_language_support/declarations_and_references.md b/topics/reference_guide/custom_language_support/declarations_and_references.md
index 6c12ed74a..c6fc49bae 100644
--- a/topics/reference_guide/custom_language_support/declarations_and_references.md
+++ b/topics/reference_guide/custom_language_support/declarations_and_references.md
@@ -1,4 +1,4 @@
-
+
# Declarations and References
@@ -24,7 +24,8 @@ Declarations in PSI elements are implementations of
To report a declaration in a PSI element, either:
- implement and register
- [`PsiSymbolDeclarationProvider`](%gh-ic%/platform/core-api/src/com/intellij/model/psi/PsiSymbolDeclarationProvider.java) in `com.intellij.psi.declarationProvider` extension point
+ [`PsiSymbolDeclarationProvider`](%gh-ic%/platform/core-api/src/com/intellij/model/psi/PsiSymbolDeclarationProvider.java)
+ in
- implement `PsiSymbolDeclaration` directly in the `PsiElement`.
## References
@@ -85,4 +86,4 @@ At the same time, it's possible:
To provide an Implicit reference, implement and register
[`ImplicitReferenceProvider`](%gh-ic%/platform/core-api/src/com/intellij/model/psi/ImplicitReferenceProvider.java)
-in `com.intellij.psi.implicitReferenceProvider` extension point.
+in .
diff --git a/topics/reference_guide/custom_language_support/documentation.md b/topics/reference_guide/custom_language_support/documentation.md
index 19f2d6dbb..9aa2e7acc 100644
--- a/topics/reference_guide/custom_language_support/documentation.md
+++ b/topics/reference_guide/custom_language_support/documentation.md
@@ -58,19 +58,19 @@ outlining the primary components and their interactions.
`DocumentationTargetProvider`
: Implement
[`DocumentationTargetProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/platform/backend/documentation/DocumentationTargetProvider.java)
-and register it as `com.intellij.platform.backend.documentation.targetProvider` extension point to build documentation
+and register it as to build documentation
for a certain offset in a `PsiFile` by overriding `documentationTargets()`.
`PsiDocumentationTargetProvider`
: Implement
[`PsiDocumentationTargetProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/platform/backend/documentation/PsiDocumentationTargetProvider.java)
-and register it as `com.intellij.platform.backend.documentation.psiTargetProvider` extension point to build documentation
+and register it as to build documentation
for PSI elements by overriding `documentationTarget()`.
`SymbolDocumentationTargetProvider`
: Implement
[`SymbolDocumentationTargetProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/platform/backend/documentation/SymbolDocumentationTargetProvider.java)
-and register it as `com.intellij.platform.backend.documentation.symbolTargetProvider` extension point to build documentation
+and register it as to build documentation
for [](symbols.md) by overriding `documentationTarget()`.
### `DocumentationTarget`
@@ -115,7 +115,7 @@ Custom language developers usually extend from
[`AbstractDocumentationProvider`](%gh-ic%/platform/analysis-api/src/com/intellij/lang/documentation/AbstractDocumentationProvider.java)
instead of implementing the
[`DocumentationProvider`](%gh-ic%/platform/analysis-api/src/com/intellij/lang/documentation/DocumentationProvider.java) interface.
-This implementation needs to be registered in `com.intellij.lang.documentationProvider` extension point.
+This implementation needs to be registered in .
The main work is done in `generateDoc()`, which has two PSI element arguments:
the target element for which the documentation is requested and the original element under the cursor.
@@ -143,7 +143,7 @@ In addition, several implementations of other languages exist in the IntelliJ Pl
Additionally, custom actions can be incorporated into documentation inlays and popups using the
[`DocumentationActionProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationActionProvider.java).
-This provider should be registered with the `com.intellij.documentationActionProvider` extension point.
+This provider should be registered with the .
How the documentation for the target element is created is up to the custom language developer.
A common choice is to extract and format documentation comments.
diff --git a/topics/reference_guide/custom_language_support/find_usages.md b/topics/reference_guide/custom_language_support/find_usages.md
index 18db7133c..b53851810 100644
--- a/topics/reference_guide/custom_language_support/find_usages.md
+++ b/topics/reference_guide/custom_language_support/find_usages.md
@@ -1,4 +1,4 @@
-
+
# Find Usages
@@ -12,7 +12,8 @@
The _Find Usages_ action is a multi-step process, and each step of the process requires involvement from the custom language plugin.
-The language plugin participates in the Find Usages process by registering an implementation of [`FindUsagesProvider`](%gh-ic%/platform/indexing-api/src/com/intellij/lang/findUsages/FindUsagesProvider.java) in the `com.intellij.lang.findUsagesProvider` extension point, and through the PSI implementation using [`PsiNamedElement`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiNamedElement.java) and [`PsiReference`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiReference.java) interfaces.
+The language plugin participates in the Find Usages process by registering an implementation of [`FindUsagesProvider`](%gh-ic%/platform/indexing-api/src/com/intellij/lang/findUsages/FindUsagesProvider.java) in
+the , and through the PSI implementation using [`PsiNamedElement`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiNamedElement.java) and [`PsiReference`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiReference.java) interfaces.
> In cases like function parameters and local variables, consider overriding [`PsiElement.getUseScope()`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiElement.java) to return a narrower scope.
> For instance, returning the scope of the nearest function definition can significantly reduce the number of files that need to be parsed and references that need to be resolved when renaming such elements.
@@ -35,7 +36,8 @@ The steps of the _Find Usages_ action are the following:
If the element was indexed as a comment or literal and the search in comments or literals is enabled, it checks if the word is equal to the searched element's name.
* After the usages are collected, results are shown in the usages pane.
The text shown for each found element is taken from the [`FindUsagesProvider.getNodeText()`](%gh-ic%/platform/indexing-api/src/com/intellij/lang/findUsages/FindUsagesProvider.java) method.
- To group results by type, implement [`UsageTypeProvider`](%gh-ic%/platform/usageView-impl/src/com/intellij/usages/impl/rules/UsageTypeProvider.java) and register in `com.intellij.usageTypeProvider` extension point to provide custom or predefined [`UsageType`](%gh-ic%/platform/usageView/src/com/intellij/usages/impl/rules/UsageType.java).
+ To group results by type, implement [`UsageTypeProvider`](%gh-ic%/platform/usageView-impl/src/com/intellij/usages/impl/rules/UsageTypeProvider.java) and register
+ in to provide custom or predefined [`UsageType`](%gh-ic%/platform/usageView/src/com/intellij/usages/impl/rules/UsageType.java).
**Examples:**
- Implementation of [`FindUsagesProvider`](%gh-ic%/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/findUsages/PropertiesFindUsagesProvider.java) in [Properties language plugin](%gh-ic%/plugins/properties)
diff --git a/topics/reference_guide/custom_language_support/implementing_lexer.md b/topics/reference_guide/custom_language_support/implementing_lexer.md
index 3db0278b2..471b7c9e2 100644
--- a/topics/reference_guide/custom_language_support/implementing_lexer.md
+++ b/topics/reference_guide/custom_language_support/implementing_lexer.md
@@ -1,4 +1,4 @@
-
+
# Implementing Lexer
@@ -13,11 +13,11 @@ The IDE invokes the lexer in three main contexts, and the plugin can provide dif
* [Syntax highlighting](syntax_highlighting_and_error_highlighting.md#lexer): The lexer is returned from the implementation of the
[`SyntaxHighlighterFactory`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterFactory.java)
- interface which is registered in the `com.intellij.lang.syntaxHighlighterFactory` extension point.
+ interface which is registered in the .
* [Building the syntax tree of a file](grammar_and_parser.md): the lexer is expected to be returned from
[`ParserDefinition.createLexer()`](%gh-ic%/platform/core-api/src/com/intellij/lang/ParserDefinition.java)
- implementation registered in the `com.intellij.lang.parserDefinition` extension point.
+ implementation registered in the .
* Building the index of the words contained in the file:
if the lexer-based words scanner implementation is used, the lexer is passed to the
diff --git a/topics/reference_guide/custom_language_support/inlay_hints.md b/topics/reference_guide/custom_language_support/inlay_hints.md
index d1f76f664..0084c5629 100644
--- a/topics/reference_guide/custom_language_support/inlay_hints.md
+++ b/topics/reference_guide/custom_language_support/inlay_hints.md
@@ -1,4 +1,4 @@
-
+
# Inlay Hints
@@ -41,7 +41,7 @@ It is not possible to provide advanced presentation and behavior of inlay parame
To provide inlay parameter hints, implement
[`InlayParameterHintsProvider`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/InlayParameterHintsProvider.java)
-and register it in `com.intellij.codeInsight.parameterNameHints` extension point (EP).
+and register it in (EP).
The API documentation of `InlayParameterHintsProvider` explains in detail the rationale behind all methods.
**Examples:**
@@ -50,7 +50,7 @@ The API documentation of `InlayParameterHintsProvider` explains in detail the ra
To suppress inlay parameter hints in specific places, implement
[`ParameterNameHintsSuppressor`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/ParameterNameHintsSuppressor.kt)
-and register it in `com.intellij.codeInsight.parameterNameHintsSuppressor` EP.
+and register it in .
### Declarative Inlay Hints Provider
@@ -60,7 +60,7 @@ Please note this API has limited presentation customization possibilities due to
To provide declarative inlay hints implement declarative
[`InlayHintsProvider`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/declarative/InlayHintsProvider.kt)
-and register it in `com.intellij.codeInsight.declarativeInlayProvider` EP.
+and register it in .
See the API documentation for the details.
**Examples:**
@@ -69,10 +69,10 @@ See the API documentation for the details.
To provide a custom configuration UI, implement
[`InlayHintsCustomSettingsProvider`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/declarative/InlayHintsCustomSettingsProvider.kt)
-registered in `com.intellij.codeInsight.declarativeInlayProviderCustomSettingsProvider` extension point.
+registered in .
Preview texts displayed for inlay hint providers under Settings | Editor | Inlay Hints must be located in plugin resources in inlayProviders/\$provider_id\$ directory, for example, inlayProviders/java.implicit.types.
-The \$provider_id\$ value must match the `providerId` attribute of `com.intellij.codeInsight.declarativeInlayProvider` EP.
+The \$provider_id\$ value must match the `providerId` attribute of .
The preview file name must be preview.\$ext\$, where \$ext\$ is a default extension of a supported file type, for example, preview.java.
Hints displayed in the preview panel are defined with the dedicated markup:
@@ -111,9 +111,12 @@ Code vision hints can be displayed over the element, or on the right, at the end
It is configurable by users in Settings | Editor | Inlay Hints | Code vision by choosing a value in Default position for metrics combo box, or by selecting Position in specific provider entries.
There are three extension points for implementing a code vision provider:
-- [`DaemonBoundCodeVisionProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/DaemonBoundCodeVisionProvider.kt) registered in `com.intellij.codeInsight.daemonBoundCodeVisionProvider` EP
-- [`CodeVisionProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionProvider.kt) registered in `com.intellij.codeInsight.codeVisionProvider` EP
-- [`CodeVisionGroupSettingProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/codeVision/settings/CodeVisionGroupSettingProvider.kt) registered in `com.intellij.config.codeVisionGroupSettingProvider` EP
+- [`DaemonBoundCodeVisionProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/hints/codeVision/DaemonBoundCodeVisionProvider.kt) registered
+ in
+- [`CodeVisionProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/codeVision/CodeVisionProvider.kt) registered
+ in
+- [`CodeVisionGroupSettingProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/codeVision/settings/CodeVisionGroupSettingProvider.kt) registered
+ in
`DaemonBoundCodeVisionProvider` API should be used in cases when code vision entries are related to PSI, so that calculated values are invalidated and recalculated on PSI changes.
@@ -150,7 +153,7 @@ See the API documentation for the details.
To provide inlay hints, implement
[`InlayHintsProvider`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/InlayHintsProvider.kt)
-and register it in `com.intellij.codeInsight.inlayProvider` EP.
+and register it in .
See the API documentation for the details.
**Examples:**
diff --git a/topics/reference_guide/custom_language_support/language_injection.md b/topics/reference_guide/custom_language_support/language_injection.md
index 1a1f3e665..244dcc08f 100644
--- a/topics/reference_guide/custom_language_support/language_injection.md
+++ b/topics/reference_guide/custom_language_support/language_injection.md
@@ -1,4 +1,4 @@
-
+
# Language Injection
@@ -48,9 +48,9 @@ As a plugin author, you can provide language injection in different ways:
* For simple cases, the bundled [IntelliLang plugin](https://plugins.jetbrains.com/plugin/13374-intellilang) can handle injections,
and plugin authors need to provide a configuration with patterns that specify the context where languages should be injected.
IntelliLang can also be extended to support unknown custom languages.
-* Implementing the `com.intellij.languageInjectionContributor` extension point (EP) provides a high-level API for the injection of other languages.
- For more control over how a language is injected, plugin authors use the `com.intellij.languageInjectionPerformer` EP.
-* Implementing the `com.intellij.multiHostInjector` EP gives plugin authors the most control over where and how language injection will take place.
+* Implementing the provides a high-level API for the injection of other languages.
+ For more control over how a language is injected, plugin authors use the .
+* Implementing the gives plugin authors the most control over where and how language injection will take place.
In the following sections, we'll discuss these three options in more detail.
@@ -83,7 +83,7 @@ On the plugin side, these entries are defined in the file [`javaInjections.xml`]
```
-The XML file with the injection configurations is loaded through the `org.intellij.intelliLang.injectionConfig` EP in the file
+The XML file with the injection configurations is loaded through the in the file
[`intellilang-java-support.xml`](%gh-ic%/plugins/IntelliLang/resources/META-INF/intellilang-java-support.xml).
```xml
@@ -98,12 +98,12 @@ The XML file with the injection configurations is loaded through the `org.intell
It is important to make a distinction between plugin authors who want to provide injections into existing languages and plugin authors who want to provide support for IntelliLang injections in their custom language.
Both define their injections by providing XML configurations and loading them through the [plugin.xml](plugin_configuration_file.md).
-However, custom language authors need to implement the `org.intellij.intelliLang.languageSupport` EP to make their language and PSI element patterns known to IntelliLang.
+However, custom language authors need to implement the to make their language and PSI element patterns known to IntelliLang.
Therefore, plugin authors who want to provide injections for existing languages can skip the first step.
#### Implement `org.intellij.intelliLang.languageSupport` EP
-Implement the `org.intellij.intelliLang.languageSupport` EP and use
+Implement the and use
[`AbstractLanguageInjectionSupport`](%gh-ic%/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/AbstractLanguageInjectionSupport.java) as a base class.
Please refer to the API docs of
[`LanguageInjectionSupport`](%gh-ic%/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/LanguageInjectionSupport.java)
@@ -145,7 +145,7 @@ Inside an injection, the following tags can be used:
#### Create an XML File to Load the Configuration
Create an XML file myLanguageID-injections.xml next to your plugin.xml that loads the above configuration.
-Custom language authors also register their implementation of the `languageSupport` EP there.
+Custom language authors also register their implementation of the there.
```xml
@@ -168,7 +168,7 @@ Therefore, you load the configuration optionally in your main plugin.xml
## `LanguageInjectionContributor` and `LanguageInjectionPerformer`
-The `com.intellij.languageInjectionContributor` EP provides injection information for the given context in terms of _what_ to inject.
+The provides injection information for the given context in terms of _what_ to inject.
As a plugin author, implement [`LanguageInjectionContributor`](%gh-ic%/platform/core-api/src/com/intellij/lang/injection/general/LanguageInjectionContributor.java) to provide context-specific injections.
For instance, if you want to inject a YAML or JSON to a literal language depending on some conditions, you could implement this interface like this:
@@ -201,12 +201,12 @@ Register the implementation in your plugin.xml:
language="YourLanguage"/>
```
-If you want more control over how the injection should be done then implement the `com.intellij.languageInjectionPerformer` EP which allows for complex language injections, e.g. for concatenation or interpolation of strings.
+If you want more control over how the injection should be done then implement the which allows for complex language injections, e.g. for concatenation or interpolation of strings.
If it is not implemented, then the
[`DefaultLanguageInjectionPerformer`](%gh-ic%/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/DefaultLanguageInjectionPerformer.java)
will be used.
-For the `com.intellij.languageInjectionPerformer` EP, two methods need to be implemented in [`LanguageInjectionPerformer`](%gh-ic%/platform/core-api/src/com/intellij/lang/injection/general/LanguageInjectionPerformer.java).
+For the , two methods need to be implemented in [`LanguageInjectionPerformer`](%gh-ic%/platform/core-api/src/com/intellij/lang/injection/general/LanguageInjectionPerformer.java).
First, `isPrimary()` determines if this is the default `LanguageInjectionPerformer` for the language and if it handles most of the injections.
If there is no primary `LanguageInjectionPerformer` found, then a fallback injection will be performed.
@@ -218,7 +218,7 @@ The method `performInjection()` does the actual injection into the context PSI e
## `MultiHostInjector`
-[`MultiHostInjector`](%gh-ic%/platform/core-api/src/com/intellij/lang/injection/MultiHostInjector.java) registered in `com.intellij.multiHostInjector` EP is a very low-level API, but it gives plugin authors the most freedom.
+[`MultiHostInjector`](%gh-ic%/platform/core-api/src/com/intellij/lang/injection/MultiHostInjector.java) registered in is a very low-level API, but it gives plugin authors the most freedom.
It performs language injection inside other PSI elements, e.g. inject SQL inside an XML tag text or inject regular expressions into Java string literals.
Plugin authors need to implement `getLanguagesToInject()` to provide a list of places to inject a language, and `elementsToInjectIn()` to return a list of elements to inject.
@@ -309,7 +309,8 @@ Now, inside the editor the injected portion will work as expected where foo is t
## Formatting
-To control delegation of formatting to containing file, implement [`InjectedFormattingOptionsProvider`](%gh-ic%/platform/code-style-api/src/com/intellij/formatting/InjectedFormattingOptionsProvider.java) and register in `com.intellij.formatting.injectedOptions` extension point.
+To control delegation of formatting to containing file, implement [`InjectedFormattingOptionsProvider`](%gh-ic%/platform/code-style-api/src/com/intellij/formatting/InjectedFormattingOptionsProvider.java) and
+register in .
## Injection Highlighting
diff --git a/topics/reference_guide/custom_language_support/navbar.md b/topics/reference_guide/custom_language_support/navbar.md
index eccc204e8..72e595adc 100644
--- a/topics/reference_guide/custom_language_support/navbar.md
+++ b/topics/reference_guide/custom_language_support/navbar.md
@@ -1,4 +1,4 @@
-
+
# Navigation Bar
@@ -16,7 +16,7 @@ structure.
The starting point for the navigation bar extension is the
[`NavBarModelExtension`](%gh-ic%/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarModelExtension.java)
-interface, which is registered in the `com.intellij.navbar` extension point.
+interface, which is registered in the .
To reuse the IntelliJ Platform implementation, you can extend one of two classes:
diff --git a/topics/reference_guide/custom_language_support/navigation.md b/topics/reference_guide/custom_language_support/navigation.md
index db4eeae9f..885026cd4 100644
--- a/topics/reference_guide/custom_language_support/navigation.md
+++ b/topics/reference_guide/custom_language_support/navigation.md
@@ -17,7 +17,8 @@ Direct navigation is the navigation from `PsiElement` to another `PsiElement`,
such as navigation from `break` keyword to the end of a loop in Java, without showing any popups.
To provide `PsiElement` for direct navigation, implement and register
-[`DirectNavigationProvider`](%gh-ic%/platform/core-api/src/com/intellij/navigation/DirectNavigationProvider.java) in `com.intellij.lang.directNavigationProvider` EP.
+[`DirectNavigationProvider`](%gh-ic%/platform/core-api/src/com/intellij/navigation/DirectNavigationProvider.java)
+in .
## Symbol Navigation
@@ -34,7 +35,8 @@ instances (where to go and what to show in the popup).
To provide navigation targets by a `Symbol`, either:
- implement and register
- [`SymbolNavigationProvider`](%gh-ic%/platform/core-api/src/com/intellij/navigation/SymbolNavigationProvider.java) in `com.intellij.symbolNavigation` EP;
+ [`SymbolNavigationProvider`](%gh-ic%/platform/core-api/src/com/intellij/navigation/SymbolNavigationProvider.java)
+ in ;
- or implement
[`NavigatableSymbol`](%gh-ic%/platform/core-api/src/com/intellij/navigation/NavigatableSymbol.java)
in the `Symbol`.
diff --git a/topics/reference_guide/custom_language_support/parameter_info.md b/topics/reference_guide/custom_language_support/parameter_info.md
index 10a7f1eab..939a6880b 100644
--- a/topics/reference_guide/custom_language_support/parameter_info.md
+++ b/topics/reference_guide/custom_language_support/parameter_info.md
@@ -1,4 +1,4 @@
-
+
# Parameter Info
@@ -12,7 +12,7 @@
Custom languages can use
[`ParameterInfoHandler`](%gh-ic%/platform/lang-api/src/com/intellij/lang/parameterInfo/ParameterInfoHandler.java)
-registered in `com.intellij.codeInsight.parameterInfo` extension point (EP) to show information about parameters in method and function calls.
+registered in to show information about parameters in method and function calls.
This is a convenient way to display type signatures directly as a popup in the editor without having to consult the documentation.
If it is available, the IDE can show this popup automatically after a short delay, or it can be invoked explicitly via
View | Parameter Info.
diff --git a/topics/reference_guide/custom_language_support/references_and_resolve.md b/topics/reference_guide/custom_language_support/references_and_resolve.md
index 38342eed6..d166ac674 100644
--- a/topics/reference_guide/custom_language_support/references_and_resolve.md
+++ b/topics/reference_guide/custom_language_support/references_and_resolve.md
@@ -1,4 +1,4 @@
-
+
# References and Resolve
@@ -10,7 +10,8 @@ Resolving references allows users to navigate from a PSI element usage (accessin
This feature is required to support the Navigate | Declaration or Usages action invoked by Ctrl/Cmd+B or clicking the mouse button while holding Ctrl/Cmd key, and it is a prerequisite for implementing [finding usages](find_usages.md), [rename refactoring](rename_refactoring.md), and [code completion](code_completion.md).
The View | Quick Definition action is based on the same mechanism, so it becomes automatically available for all references that can be resolved by the language plugin.
-To customize the exact document range to show in the popup (e.g., include "surrounding" code or comments), provide [`ImplementationTextSelectioner`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hint/ImplementationTextSelectioner.java) registered in `com.intellij.lang.implementationTextSelectioner` extension point.
+To customize the exact document range to show in the popup (e.g., include "surrounding" code or comments), provide [`ImplementationTextSelectioner`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hint/ImplementationTextSelectioner.java) registered
+in .
## PSI References
diff --git a/topics/reference_guide/custom_language_support/registering_file_type.md b/topics/reference_guide/custom_language_support/registering_file_type.md
index 7e0da4fdb..15643f4a1 100644
--- a/topics/reference_guide/custom_language_support/registering_file_type.md
+++ b/topics/reference_guide/custom_language_support/registering_file_type.md
@@ -1,4 +1,4 @@
-
+
# Registering a File Type
@@ -21,7 +21,7 @@ A custom language file type is a class derived from [`LanguageFileType`](%gh-ic%
-Use `com.intellij.fileType` extension point to register `LanguageFileType` implementation and instance via `implementationClass` and `fieldName` attributes.
+Use to register `LanguageFileType` implementation and instance via `implementationClass` and `fieldName` attributes.
Also, `name` and `language` must be declared matching `FileType.getName()` and ID of language returned from `LanguageFileType.getLanguage()`, respectively.
To associate the file type in the IDE, specify one or more associations listed in the following table.
@@ -41,7 +41,7 @@ To associate the file type in the IDE, specify one or more associations listed i
>
{style="warning"}
-To register a file type, the plugin developer provides a subclass of [`FileTypeFactory`](%gh-ic%/platform/ide-core/src/com/intellij/openapi/fileTypes/FileTypeFactory.java), which is registered via the `com.intellij.fileTypeFactory` extension point.
+To register a file type, the plugin developer provides a subclass of [.
diff --git a/topics/reference_guide/custom_language_support/rename_refactoring.md b/topics/reference_guide/custom_language_support/rename_refactoring.md
index 9f35ec510..f48ae116f 100644
--- a/topics/reference_guide/custom_language_support/rename_refactoring.md
+++ b/topics/reference_guide/custom_language_support/rename_refactoring.md
@@ -1,4 +1,4 @@
-
+
# Rename Refactoring
@@ -24,12 +24,13 @@ Thus, surprisingly, the easiest way to get the replacement node is to create a d
If a renamed reference extends [`PsiReferenceBase`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiReferenceBase.java), renaming is performed by invoking the [`ElementManipulator.handleContentChange()`](%gh-ic%/platform/core-api/src/com/intellij/psi/ElementManipulator.java), responsible for handling the content change and calculating the text range of reference inside the element.
-To disable renaming for specific elements, implement `com.intellij.openapi.util.Condition` for PsiElement of type `T` and register it in `com.intellij.vetoRenameCondition` extension point.
+To disable renaming for specific elements, implement `com.intellij.openapi.util.Condition` for PsiElement of type `T` and register it
+in .
### Name Validation
[`NamesValidator`](%gh-ic%/platform/analysis-api/src/com/intellij/lang/refactoring/NamesValidator.java) allows a plugin to check if the name entered by the user in the `Rename` dialog is a valid identifier (and not a keyword) according to the custom language rules.
If an implementation of this interface is not provided by the plugin, Java rules for validating identifiers are used.
-Implementations of `NamesValidator` are registered in the `com.intellij.lang.namesValidator` extension point.
+Implementations of `NamesValidator` are registered in the .
**Example:**
[`PropertiesNamesValidator`](%gh-ic%/plugins/properties/src/com/intellij/lang/properties/PropertiesNamesValidator.java) for [Properties language plugin](%gh-ic%/plugins/properties)
@@ -53,7 +54,7 @@ Note that `getErrorMessage()` only works if all `RenameInputValidator` accept th
**Example:**
[`YamlKeyValueRenameInputValidator`](%gh-ic%/plugins/yaml/editing/src/org/jetbrains/yaml/refactoring/rename/YamlKeyValueRenameInputValidator.java) validating YAML language keys
-Implementations of `RenameInputValidator` or `RenameInputValidatorEx` are registered in the `com.intellij.renameInputValidator` extension point.
+Implementations of `RenameInputValidator` or `RenameInputValidatorEx` are registered in the .
### Custom Rename UI and Workflow
Further customization of the Rename refactoring processing is possible on multiple levels.
diff --git a/topics/reference_guide/custom_language_support/safe_delete_refactoring.md b/topics/reference_guide/custom_language_support/safe_delete_refactoring.md
index f1430b9d0..7074e9f3b 100644
--- a/topics/reference_guide/custom_language_support/safe_delete_refactoring.md
+++ b/topics/reference_guide/custom_language_support/safe_delete_refactoring.md
@@ -1,4 +1,4 @@
-
+
# Safe Delete Refactoring
@@ -16,7 +16,7 @@ In addition to that, to support _Safe Delete_, a plugin needs to implement two t
* The
[`RefactoringSupportProvider`](%gh-ic%/platform/refactoring/src/com/intellij/lang/refactoring/RefactoringSupportProvider.java)
- interface, registered in the `com.intellij.lang.refactoringSupport` extension point, and the `isSafeDeleteAvailable()` method, which checks if the _Safe Delete_ refactoring is available for a specific PSI element
+ interface, registered in the , and the `isSafeDeleteAvailable()` method, which checks if the _Safe Delete_ refactoring is available for a specific PSI element
* The
[`PsiElement.delete()`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiElement.java)
diff --git a/topics/reference_guide/custom_language_support/spell_checking.md b/topics/reference_guide/custom_language_support/spell_checking.md
index 0b692272f..b75fd3b7d 100644
--- a/topics/reference_guide/custom_language_support/spell_checking.md
+++ b/topics/reference_guide/custom_language_support/spell_checking.md
@@ -1,4 +1,4 @@
-
+
# Spell Checking
@@ -13,7 +13,7 @@
Spell Checking is used to check the correctness of natural languages within code.
Language plugins can implement customized spell checking by implementing
[`SpellcheckingStrategy`](%gh-ic%/spellchecker/src/com/intellij/spellchecker/tokenizer/SpellcheckingStrategy.java)
-and registering it in the `com.intellij.spellchecker.support` extension point.
+and registering it in the .
**Examples:**
@@ -97,7 +97,7 @@ Some custom languages may have a distinct fixed set of words or key identifiers.
These words can be provided in additional dictionaries from
[BundledDictionaryProvider](%gh-ic%/spellchecker/src/com/intellij/spellchecker/BundledDictionaryProvider.java).
Implement `getBundledDictionaries()` to return paths to the word dictionaries (*.dic files) and
-register it with the `com.intellij.spellchecker.bundledDictionaryProvider` extension point.
+register it with the .
**Example:**
[`PythonBundledDictionaryProvider`](%gh-ic%/python/src/com/jetbrains/python/spellchecker/PythonBundledDictionaryProvider.java)
@@ -106,7 +106,7 @@ register it with the `com.intellij.spellchecker.bundledDictionaryProvider` exten
[`RuntimeDictionaryProvider`](%gh-ic%/spellchecker/src/com/intellij/spellchecker/dictionary/RuntimeDictionaryProvider.java)
allows providing (dynamic) dictionaries generated at runtime, e.g., downloaded from a server, created from project sources on-the-fly, etc.
-Register in `com.intellij.spellchecker.dictionary.runtimeDictionaryProvider` extension point.
+Register in .
**Example:**
[`PyPackagesDictionary`](%gh-ic%/python/src/com/jetbrains/python/packaging/PyPackagesDictionary.kt)
@@ -124,13 +124,13 @@ To use the API mentioned below, add a [dependency](plugin_dependencies.md) on pl
To define how to extract natural language text from PSI, implement
[`TextExtractor`](%gh-ic%/plugins/grazie/src/main/kotlin/com/intellij/grazie/text/TextExtractor.java)
-and register in `com.intellij.grazie.textExtractor` extension point.
+and register in .
**Example:** [`JavaTextExtractor`](%gh-ic%/plugins/grazie/java/src/main/kotlin/com/intellij/grazie/ide/language/java/JavaTextExtractor.java)
### `ProblemFilter`
To ignore specific reported problems, implement [`ProblemFilter`](%gh-ic%/plugins/grazie/src/main/kotlin/com/intellij/grazie/text/ProblemFilter.java)
-registered in `com.intellij.grazie.problemFilter` extension point.
+registered in .
**Example:** [`JavadocProblemFilter`](%gh-ic%/plugins/grazie/java/src/main/kotlin/com/intellij/grazie/ide/language/java/JavadocProblemFilter.java)
diff --git a/topics/reference_guide/custom_language_support/structure_view.md b/topics/reference_guide/custom_language_support/structure_view.md
index 30641f2a9..896383689 100644
--- a/topics/reference_guide/custom_language_support/structure_view.md
+++ b/topics/reference_guide/custom_language_support/structure_view.md
@@ -1,4 +1,4 @@
-
+
# Structure View
@@ -14,10 +14,12 @@ The Structure View implementation used for a specific file type can be customize
If a custom language plugin provides an implementation of the [`StructureView`](%gh-ic%/platform/editor-ui-api/src/com/intellij/ide/structureView/StructureView.java) interface, it can completely replace the standard structure view implementation with a custom user interface component.
However, for most languages, this is not necessary, and the standard `StructureView` implementation provided by IntelliJ Platform can be reused.
-> To modify an existing Structure View (e.g., add/filter nodes of builtin language support), use [`StructureViewExtension`](%gh-ic%/platform/structure-view-impl/src/com/intellij/ide/structureView/StructureViewExtension.java) registered in `com.intellij.lang.structureViewExtension` extension point.
+> To modify an existing Structure View (e.g., add/filter nodes of builtin language support), use [`StructureViewExtension`](%gh-ic%/platform/structure-view-impl/src/com/intellij/ide/structureView/StructureViewExtension.java) registered
+> in .
>
-The starting point for the structure view is the [`PsiStructureViewFactory`](%gh-ic%/platform/editor-ui-api/src/com/intellij/lang/PsiStructureViewFactory.java) interface, which is registered in the `com.intellij.lang.psiStructureViewFactory` extension point.
+The starting point for the structure view is the [`PsiStructureViewFactory`](%gh-ic%/platform/editor-ui-api/src/com/intellij/lang/PsiStructureViewFactory.java) interface, which is registered
+in the .
**Examples:**
- [`PsiStructureViewFactory`](%gh-ic%/plugins/properties/src/com/intellij/lang/properties/structureView/PropertiesStructureViewBuilderFactory.java) for [Properties language plugin](%gh-ic%/plugins/properties)
diff --git a/topics/reference_guide/custom_language_support/surround_with.md b/topics/reference_guide/custom_language_support/surround_with.md
index 69c290a31..22519a32f 100644
--- a/topics/reference_guide/custom_language_support/surround_with.md
+++ b/topics/reference_guide/custom_language_support/surround_with.md
@@ -1,4 +1,4 @@
-
+
# Surround With
@@ -10,7 +10,7 @@
-To support the _Surround With_ action, the plugin needs to register one or more implementations of the [`SurroundDescriptor`](%gh-ic%/platform/lang-api/src/com/intellij/lang/surroundWith/SurroundDescriptor.java) interface in the `com.intellij.lang.surroundDescriptor` extension point.
+To support the _Surround With_ action, the plugin needs to register one or more implementations of the [.
Each of the surround descriptors defines a possible type of code fragment that can be surrounded - for example, one surround descriptor can handle surrounding expressions, and another can handle statements.
Each surround descriptor, in turn, contains an array of [`Surrounder`](%gh-ic%/platform/lang-api/src/com/intellij/lang/surroundWith/Surrounder.java) objects, defining specific templates which can be used for surrounding the selected code fragment (for example, _Surround With if_, _Surround With for_, and so on).
diff --git a/topics/reference_guide/custom_language_support/syntax_highlighting_and_error_highlighting.md b/topics/reference_guide/custom_language_support/syntax_highlighting_and_error_highlighting.md
index 3391f7631..5e52a645b 100644
--- a/topics/reference_guide/custom_language_support/syntax_highlighting_and_error_highlighting.md
+++ b/topics/reference_guide/custom_language_support/syntax_highlighting_and_error_highlighting.md
@@ -1,4 +1,4 @@
-
+
# Syntax and Error Highlighting
@@ -31,7 +31,8 @@ Highlighting from multiple `TextAttributesKey` items can be layered — for exam
## Color Settings
The mapping of the `TextAttributesKey` to specific attributes used in an editor is defined by the [`EditorColorsScheme`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/editor/colors/EditorColorsScheme.java) class.
-It can be configured by the user via Settings | Editor | Color Scheme by providing an implementation of [`ColorSettingPage`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/options/colors/ColorSettingsPage.java) registered in `com.intellij.colorSettingsPage` extension point.
+It can be configured by the user via Settings | Editor | Color Scheme by providing an implementation of [`ColorSettingPage`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/options/colors/ColorSettingsPage.java) registered
+in .
To look up the external name for a setting in the IDE, use [UI Inspector](internal_ui_inspector.md#inspecting-settings).
The File | Export | Files or Selection to HTML feature uses the same syntax highlighting mechanism as the editor.
@@ -65,7 +66,8 @@ For highlighting lexer errors [`HighlighterColors.BAD_CHARACTER`](%gh-ic%/platfo
[Semantic highlighting](https://www.jetbrains.com/help/idea/configuring-colors-and-fonts.html#semantic-highlighting) provides an additional coloring layer to improve the visual distinction of several related items (e.g., method parameters, local variables).
-Register [`RainbowVisitor`](%gh-ic%/platform/analysis-impl/src/com/intellij/codeInsight/daemon/RainbowVisitor.java) in `com.intellij.highlightVisitor` extension point.
+Register [`RainbowVisitor`](%gh-ic%/platform/analysis-impl/src/com/intellij/codeInsight/daemon/RainbowVisitor.java)
+in .
[](#color-settings) must implement [`RainbowColorSettingsPage`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/options/colors/RainbowColorSettingsPage.java) in addition.
## Parser
@@ -78,7 +80,7 @@ See [](syntax_errors.md) on how to programmatically suppress these errors in cer
## Annotator
The third level of highlighting is performed through the [`Annotator`](%gh-ic%/platform/analysis-api/src/com/intellij/lang/annotation/Annotator.java) interface.
-A plugin can register one or more annotators in the `com.intellij.annotator` extension point, and these annotators are called during the background highlighting pass to process the elements in the custom language's PSI tree.
+A plugin can register one or more annotators in the , and these annotators are called during the background highlighting pass to process the elements in the custom language's PSI tree.
Attribute `language` should be set to the Language ID where this annotator applies to.
If highlighting data requires invoking external tools, use [](#external-annotator) instead.
@@ -151,12 +153,14 @@ Call `AnnotationHolder.createInfoAnnotation()` with an empty message and then [`
## External Annotator
If the custom language employs external tools for validating files in the language (for example, using the Xerces library for XML schema validation),
-it can provide an implementation of the [`ExternalAnnotator`](%gh-ic%/platform/analysis-api/src/com/intellij/lang/annotation/ExternalAnnotator.java) interface and register it in `com.intellij.externalAnnotator` extension point (`language` attribute must be specified).
+it can provide an implementation of the [`ExternalAnnotator`](%gh-ic%/platform/analysis-api/src/com/intellij/lang/annotation/ExternalAnnotator.java) interface and register
+it in (`language` attribute must be specified).
The `ExternalAnnotator` highlighting has the lowest priority and is invoked only after all other background processing has completed.
It uses the same [`AnnotationHolder`](%gh-ic%/platform/analysis-api/src/com/intellij/lang/annotation/AnnotationHolder.java) interface for converting the output of the external tool into editor highlighting.
-To skip running specific `ExternalAnnotator` for given file, register [`ExternalAnnotatorsFilter`](%gh-ic%/platform/analysis-api/src/com/intellij/lang/ExternalAnnotatorsFilter.java) extension in `com.intellij.daemon.externalAnnotatorsFilter` extension point.
+To skip running specific `ExternalAnnotator` for given file, register [`ExternalAnnotatorsFilter`](%gh-ic%/platform/analysis-api/src/com/intellij/lang/ExternalAnnotatorsFilter.java) extension
+in .
To enable running `ExternalAnnotator` during indexing in [dumb mode](indexing_and_psi_stubs.md#dumb-mode), it can be marked [dumb aware](indexing_and_psi_stubs.md#DumbAwareAPI) (2023.3).
diff --git a/topics/reference_guide/custom_language_support/websymbols_context.md b/topics/reference_guide/custom_language_support/websymbols_context.md
index 4d30dbea5..85e373fb6 100644
--- a/topics/reference_guide/custom_language_support/websymbols_context.md
+++ b/topics/reference_guide/custom_language_support/websymbols_context.md
@@ -1,4 +1,4 @@
-
+
# Web Symbols Context
@@ -37,7 +37,7 @@ which is enabled.
## `WebSymbolsContextProvider`
The most straightforward way to contribute context is to register a [`WebSymbolsContextProvider`](%gh-ic%/platform/webSymbols/src/com/intellij/webSymbols/context/WebSymbolsContextProvider.kt)
-through `com.intellij.webSymbols.context` extension point and override one of `isEnabled()` methods
+through and override one of `isEnabled()` methods
to detect a context of a particular name and kind, e.g.:
```xml
@@ -226,7 +226,7 @@ for the dependency and the `enableByDefault` attribute set to `true`.
Context rules can also be provided dynamically through [`WebSymbolsContextRulesProvider`](%gh-ic%/platform/webSymbols/src/com/intellij/webSymbols/context/WebSymbolsContextRulesProvider.kt).
To do that, register a [`WebSymbolsQueryConfigurator`](%gh-ic%/platform/webSymbols/src/com/intellij/webSymbols/query/WebSymbolsQueryConfigurator.kt)
-through `com.intellij.webSymbols.queryConfigurator` extension point and implement `getContextRulesProviders()`.
+through and implement `getContextRulesProviders()`.
It is important that the results are stable, because any unexpected change in the rules will cause
rescanning of the project, dropping of all caches and restarting code analysis.
@@ -270,7 +270,7 @@ When choosing between different patterns matching the same file name, the follow
`WebSymbolsContextSourceProximityProvider` allows providing evaluation logic for the context rules. It should be used when
working on integrating support for a package manager or a language which has a way to define global libraries. The provider should be registered
-through `com.intellij.webSymbols.contextSourceProximityProvider` extension point.
+through .
The provider has a single method to be overridden — `calculateProximity()`. When `sourceKind` parameter matches the provider requirements,
it should calculate the [proximity](#context-proximity) of each source provided by `sourceNames`. For instance, when supporting a package manager and
diff --git a/topics/reference_guide/custom_language_support/websymbols_web_types.md b/topics/reference_guide/custom_language_support/websymbols_web_types.md
index ecc5c2b05..9bd4836e7 100644
--- a/topics/reference_guide/custom_language_support/websymbols_web_types.md
+++ b/topics/reference_guide/custom_language_support/websymbols_web_types.md
@@ -1,4 +1,4 @@
-
+
# Web Types
@@ -140,7 +140,7 @@ The property accepts a string or an array of strings with relative paths to Web
IDE Plugin
: You can ship Web Types JSON with your IDE plugin.
-To point an IDE to its location, use `com.intellij.webSymbols.webTypes` extension point and pass the file location in `source` attribute value.
+To point an IDE to its location, use and pass the file location in `source` attribute value.
With `enableByDefault` attribute, you can choose whether the Web Types file should be contributed to Web Symbols scope by default,
or only if an NPM package with the same name is present in the project.
diff --git a/topics/reference_guide/frameworks_and_external_apis/external_builder_api.md b/topics/reference_guide/frameworks_and_external_apis/external_builder_api.md
index 6052df9d1..c6cb1eb21 100644
--- a/topics/reference_guide/frameworks_and_external_apis/external_builder_api.md
+++ b/topics/reference_guide/frameworks_and_external_apis/external_builder_api.md
@@ -1,4 +1,4 @@
-
+
# External Builder API and Plugins
@@ -56,7 +56,7 @@ These files don't have extensions, so you need to map corresponding patterns to
Sources of a plugin for External Builder should be put in a separate module.
By convention, such a module has a name '...-jps-plugin', and its sources are placed under the jps-plugin directory in the main plugin directory.
-Use `com.intellij.compileServer.plugin` extension point to add the plugin to the classpath of the external build process, the plugin JAR should be named \$JPS_module_name\$.jar. Build | Prepare Plugin Module for Deployment action will automatically pack the 'jps-plugin' part to a separate JAR accordingly.
+Use to add the plugin to the classpath of the external build process, the plugin JAR should be named \$JPS_module_name\$.jar. Build | Prepare Plugin Module for Deployment action will automatically pack the 'jps-plugin' part to a separate JAR accordingly.
See [IntelliJ Platform Explorer](https://jb.gg/ipe?extensions=com.intellij.compileServer.plugin) for samples.
diff --git a/topics/reference_guide/frameworks_and_external_apis/xml_dom_api.md b/topics/reference_guide/frameworks_and_external_apis/xml_dom_api.md
index eb88bd954..ee6cb5f49 100644
--- a/topics/reference_guide/frameworks_and_external_apis/xml_dom_api.md
+++ b/topics/reference_guide/frameworks_and_external_apis/xml_dom_api.md
@@ -1,4 +1,4 @@
-
+
# XML DOM API
@@ -85,11 +85,8 @@ interface Bar extends com.intellij.util.xml.DomElement {
```
Next, you should create a [`DomFileDescription`](%gh-ic%/xml/dom-openapi/src/com/intellij/util/xml/DomFileDescription.java) class, pass to its constructor the root tag name and root element interface.
-Register it in [plugin.xml](plugin_configuration_file.md) using `com.intellij.dom.fileMetaData` extension point and specify `rootTagName` and `domVersion`/`stubVersion` attributes.
-
-> When targeting 2019.1 or earlier, use `com.intellij.dom.fileDescription` extension point instead.
->
-{style="note"}
+Register it in [plugin.xml](plugin_configuration_file.md)
+using and specify `rootTagName` and `domVersion`/`stubVersion` attributes.
You can now get the file element from [`DomManager`](%gh-ic%/xml/dom-openapi/src/com/intellij/util/xml/DomManager.java).
To get the "239" value, you only have to write the following code:
@@ -369,7 +366,7 @@ The index parameter in the last example means the index in the merged collection
### Dynamic Definition
You can extend existing DOM model at runtime by implementing `com.intellij.util.xml.reflect.DomExtender`.
-Register it in "extenderClass" attribute of `com.intellij.dom.extender` extension point, where "domClass" specifies DOM class `` to be extended.
+Register it in "extenderClass" attribute of , where "domClass" specifies DOM class `` to be extended.
[`DomExtensionsRegistrar`](%gh-ic%/xml/dom-openapi/src/com/intellij/util/xml/reflect/DomExtensionsRegistrar.java) provides various methods to register dynamic attributes and children.
If the contributed elements depend on anything other than plain XML file content (used framework version, libraries in classpath, ...), make sure to return `false` from `DomExtender.supportsStubs()`.
@@ -616,7 +613,7 @@ Add the desired methods to your interface, then create an abstract class impleme
Note that the class should have a constructor with no arguments.
Now you only have to let DOM know that you wish to use this implementation every time you're creating a model element that should implement the necessary interface.
-Simply register it using `com.intellij.dom.implementation` extension point and DOM will generate at run-time the class that not only implements the needed interface, but also extends your abstract class.
+Register it using and DOM will generate at run-time the class that not only implements the needed interface, but also extends your abstract class.
### Models Across Multiple Files
diff --git a/topics/reference_guide/icons.md b/topics/reference_guide/icons.md
index 1196b928e..a73671712 100644
--- a/topics/reference_guide/icons.md
+++ b/topics/reference_guide/icons.md
@@ -211,7 +211,7 @@ This icon has a larger `AnimatedIcon.Big` version.
## Icon Tooltips
-Register a resource bundle via `com.intellij.iconDescriptionBundle` extension point to provide tooltips automatically for all [`SimpleColoredComponent`](%gh-ic%/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java) renderers.
+Register a resource bundle via to provide tooltips automatically for all [`SimpleColoredComponent`](%gh-ic%/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java) renderers.
Create `icon..tooltip` key in a resource bundle, where `` is the icon path with leading slash and `.svg` removed and slashes replaced with dots (e.g., `/nodes/class.svg` → `icon.nodes.class.tooltip`).
@@ -228,7 +228,7 @@ This allows supporting both UI variants at the same time, depending on what the
1. Create a new expui directory in the icon root directory ([Reference](#organizing-icons)).
2. Copy all icons for the New UI into this directory.
3. Create an empty \$PluginName\$IconMappings.json mapping file in the resources directory.
-4. Register \$PluginName\$IconMappings.json in plugin.xml via the `com.intellij.iconMapper` extension point.
+4. Register \$PluginName\$IconMappings.json in plugin.xml via the .
diff --git a/topics/reference_guide/inspection_options.md b/topics/reference_guide/inspection_options.md
index d47acc140..8fccfd2b5 100644
--- a/topics/reference_guide/inspection_options.md
+++ b/topics/reference_guide/inspection_options.md
@@ -1,4 +1,4 @@
-
+
# Inspection Options
@@ -125,7 +125,7 @@ An example of such a case is the Java | Probable bugs | Nullability pro
Custom Swing controls can be provided by implementing
[`CustomComponentExtensionWithSwingRenderer`](%gh-ic%/platform/lang-api/src/com/intellij/codeInspection/ui/CustomComponentExtensionWithSwingRenderer.java)
-and registering the implementation in the `com.intellij.inspectionCustomComponent` extension point.
+and registering the implementation in the .
Please note that this API is still in experimental state and may be changed without preserving backward compatibility.
**Example:**
diff --git a/topics/reference_guide/localization/providing_translations.md b/topics/reference_guide/localization/providing_translations.md
index eeb537c33..b104aad0d 100644
--- a/topics/reference_guide/localization/providing_translations.md
+++ b/topics/reference_guide/localization/providing_translations.md
@@ -1,4 +1,4 @@
-
+
# Providing Translations
@@ -25,7 +25,7 @@ Note that language packs aim for full IDE localization.
If it is required to translate a plugin, see the [](#bundled-translations) section.
Language packs must define their language.
-The language definition is provided in the [`plugin.xml`](plugin_configuration_file.md) file with `com.intellij.languageBundle` extension point (EP), for example:
+The language definition is provided in the [`plugin.xml`](plugin_configuration_file.md) file with , for example:
```xml
@@ -36,7 +36,7 @@ The `locale` attribute defines the translation language on two possible levels:
- region level, for example: `zh-CN` – Chinese (Simplified), `zh-TW` – Chinese (Taiwan)
- language level, for example, `ja` – Japanese
-> Note that `com.intellij.languageBundle` EP is internal and must be used by JetBrains only.
+> Note that is internal and must be used by JetBrains only.
>
{style="warning"}
@@ -52,7 +52,7 @@ To select the IDE language, follow the instruction from the [IntelliJ IDEA Web H
In versions 2024.1 and older, there is no language selector in the IDE, and language packs serve as the IDE "language switcher."
-Installing a language pack changes the IDE language to the one defined by the `languageBundle` EP.
+Installing a language pack changes the IDE language to the one defined by the .
Only a single language pack can be installed at the same time, and restart is required for the translations to take effect.
diff --git a/topics/reference_guide/project_model/facet.md b/topics/reference_guide/project_model/facet.md
index 8e36d37db..4d8793c6d 100644
--- a/topics/reference_guide/project_model/facet.md
+++ b/topics/reference_guide/project_model/facet.md
@@ -1,4 +1,4 @@
-
+
# Facet
@@ -24,7 +24,8 @@ To create, search, and access the list of facets for a module, use [`FacetManage
### Facet-Based Tool Window
-A [tool window](tool_windows.md) dependent on the existence of given facet(s) can be registered via `com.intellij.facet.toolWindow` extension point.
+A [tool window](tool_windows.md) dependent on the existence of given facet(s) can be registered
+via .
## Facet Basics Sample
diff --git a/topics/reference_guide/project_model/library.md b/topics/reference_guide/project_model/library.md
index 316736851..971522432 100644
--- a/topics/reference_guide/project_model/library.md
+++ b/topics/reference_guide/project_model/library.md
@@ -1,4 +1,4 @@
-
+
# Library
@@ -136,6 +136,6 @@ More details on libraries can be found in the [plugin_model](%gh-sdk-samples-mas
## Predefined Libraries
-[`AdditionalLibraryRootsProvider`](%gh-ic%/platform/projectModel-api/src/com/intellij/openapi/roots/AdditionalLibraryRootsProvider.java) registered in `com.intellij.additionalLibraryRootsProvider` extension point
-allows providing synthetic/predefined libraries ([`SyntheticLibrary`](%gh-ic%/platform/projectModel-api/src/com/intellij/openapi/roots/SyntheticLibrary.java)) in a project without exposing them in the model.
+[`AdditionalLibraryRootsProvider`](%gh-ic%/platform/projectModel-api/src/com/intellij/openapi/roots/AdditionalLibraryRootsProvider.java) registered in allows
+providing synthetic/predefined libraries ([`SyntheticLibrary`](%gh-ic%/platform/projectModel-api/src/com/intellij/openapi/roots/SyntheticLibrary.java)) in a project without exposing them in the model.
By default, they're also hidden from UI.
diff --git a/topics/reference_guide/project_model/sdk.md b/topics/reference_guide/project_model/sdk.md
index fda692718..b64788d43 100644
--- a/topics/reference_guide/project_model/sdk.md
+++ b/topics/reference_guide/project_model/sdk.md
@@ -1,4 +1,4 @@
-
+
Configuring and getting information about a project SDK.
@@ -62,7 +62,8 @@ See the [project_model](%gh-sdk-samples-master%/project_model/src/main/java/org/
### Working with a Custom SDK
-To create a custom SDK, provide a class extending [`SdkType`](%gh-ic%/platform/lang-core/src/com/intellij/openapi/projectRoots/SdkType.java), leave `saveAdditionalData()` blank, and register it in the `com.intellij.sdkType` extension point.
+To create a custom SDK, provide a class extending [`SdkType`](%gh-ic%/platform/lang-core/src/com/intellij/openapi/projectRoots/SdkType.java), leave `saveAdditionalData()` blank, and register it
+in the .
To make SDK settings persistent, override `setupSdkPaths()` and save settings by `modificator.commitChanges()`:
@@ -86,7 +87,9 @@ The recommended way of managing "SDK" settings is to create a [`CustomStepProjec
## Assisting in Setting Up an SDK
Prompting the user with a notification to set up an SDK can help them get up-and-running with a plugin faster.
-Use `com.intellij.projectSdkSetupValidator` extension point to register an implementation of [`ProjectSdkSetupValidator`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/daemon/ProjectSdkSetupValidator.java) to notify the user if they are missing an SDK.
+Use to register
+an implementation of [`ProjectSdkSetupValidator`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/daemon/ProjectSdkSetupValidator.java)
+to notify the user if they are missing an SDK.
The following is a simplified example that checks whether an instance of "DemoSdk" has been configured in the project when the user opens a "DemoFileType":
@@ -122,6 +125,7 @@ Within `DemoProjectSdkSetupValidator`:
* `getFixHandler()` returns an `EditorNotificationPanel.ActionHandler` that enables the user to execute a quick fix to resolve the validation issue.
> `ProjectSdkSetupValidator` will not work in IntelliJ Platform-based IDEs such as PyCharm.
-> In such cases, you should register an implementation of [`EditorNotificationProvider`](%gh-ic%/platform/platform-api/src/com/intellij/ui/EditorNotificationProvider.java) at the `com.intellij.editorNotificationProvider` extension point and override the `createNotificationPanel()` method with the conditionality and panel setup you want.
+> In such cases, you should register an implementation of [`EditorNotificationProvider`](%gh-ic%/platform/platform-api/src/com/intellij/ui/EditorNotificationProvider.java)
+> via and override the `createNotificationPanel()` method with the conditionality and panel setup you want.
>
{style="warning"}
diff --git a/topics/reference_guide/settings_guide.md b/topics/reference_guide/settings_guide.md
index 034efb349..95e661586 100644
--- a/topics/reference_guide/settings_guide.md
+++ b/topics/reference_guide/settings_guide.md
@@ -1,4 +1,4 @@
-
+
# Settings Guide
@@ -40,7 +40,7 @@ See [Implementations for Settings Extension Points](#implementations-for-setting
### Declaring Application Settings
-The application-level settings are declared using `com.intellij.applicationConfigurable` EP.
+The application-level settings are declared using .
An example `` EP declaration is shown below.
The declaration indicates the settings are a child of the `tools` settings group, the implementation FQN is `com.example.ApplicationSettingsConfigurable`, the unique ID is the same as the implementation fully qualified name (FQN), and the (non-localized) title displayed to users is "My Application Settings".
@@ -61,7 +61,7 @@ See [](#settings-declaration-attributes) for more information.
### Declaring Project Settings
-The project-level settings are declared using `com.intellij.projectConfigurable` EP.
+The project-level settings are declared using .
An example `` EP declaration is shown below.
Similar to the application setting example above, but it includes the additional attribute `nonDefaultProject` indicating these settings do not apply to the [default project](https://www.jetbrains.com/help/idea/configure-project-settings.html#new-default-settings).
@@ -85,7 +85,7 @@ This section provides some additional clarification of those comments.
#### Table of Attributes
-The attributes supported by `com.intellij.applicationConfigurable` EP and `com.intellij.projectConfigurable` EP are in the table below:
+The attributes supported by and are in the table below:
| Attribute | Required | Attribute
Value
| Implementation
Basis
|
|---------------------|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------|
@@ -128,7 +128,7 @@ See the [previous section](#table-of-attributes) for all supported attributes.
## Implementations for Settings Extension Points
-Implementations for `com.intellij.projectConfigurable` EP and `com.intellij.applicationConfigurable` EP can have one of two bases:
+Implementations for and can have one of two bases:
* The [`Configurable`](%gh-ic%/platform/ide-core/src/com/intellij/openapi/options/Configurable.java) interface, which provides a named configurable component with a Swing form.
Most Settings providers are based on the `Configurable` interface or one of its sub- or supertypes.
* The [`ConfigurableProvider`](%gh-ic%/platform/ide-core/src/com/intellij/openapi/options/ConfigurableProvider.java) class, which can hide a configurable component from the Settings dialog based on runtime conditions.
@@ -183,7 +183,8 @@ Implementations based on `Configurable` can implement marker interfaces, which p
There are classes in the IntelliJ Platform specialized in particular types of Settings.
These subtypes are based on `com.intellij.openapi.options.ConfigurableEP`.
-For example, Settings | Editor | General | Appearance allows adding Settings via [`EditorSmartKeysConfigurableEP`](%gh-ic%/platform/lang-impl/src/com/intellij/application/options/editor/EditorSmartKeysConfigurableEP.java) registered in `com.intellij.editorSmartKeysConfigurable` EP.
+For example, Settings | Editor | General | Appearance allows adding Settings via [`EditorSmartKeysConfigurableEP`](%gh-ic%/platform/lang-impl/src/com/intellij/application/options/editor/EditorSmartKeysConfigurableEP.java)
+registered in .
#### Examples
diff --git a/topics/reference_guide/text_selection.md b/topics/reference_guide/text_selection.md
index 0376a63ea..843e7e329 100644
--- a/topics/reference_guide/text_selection.md
+++ b/topics/reference_guide/text_selection.md
@@ -1,4 +1,4 @@
-
+
# Text Selection
@@ -6,7 +6,8 @@
## Extending/Shrinking Text Selection
-Implementing [`ExtendWordSelectionHandler`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/editorActions/ExtendWordSelectionHandler.java) and registering it in `com.intellij.extendWordSelectionHandler` EP in your [plugin.xml](plugin_configuration_file.md) allows you to provide additional text ranges to be used when extending or shrinking a selection.
+Implementing [`ExtendWordSelectionHandler`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/editorActions/ExtendWordSelectionHandler.java) and registering
+it in in your [plugin.xml](plugin_configuration_file.md) allows you to provide additional text ranges to be used when extending or shrinking a selection.
Return `true` from `canSelect(PsiElement)` for the PSI elements that you want to provide additional text-ranges for.
The IntelliJ Platform will call `select(PsiElement, CharSequence, int, Editor)` for these elements where you can compute additional text ranges and return them as `List`.
@@ -37,7 +38,7 @@ If the cursor is located at argument `a`, extending the selection would first se
However, you might want to select the list of all arguments as an intermediate step.
This can be achieved by implementing this EP in the following way:
-1. Create a class that implements the `ExtendWordSelectionHandler` interface and register it in a `com.intellij.extendWordSelectionHandler` EP in your plugin.xml.
+1. Create a class that implements the `ExtendWordSelectionHandler` interface and register it in a in your plugin.xml.
2. The `canSelect(PsiElement)` method should return `true` for the function call node.
That indicates that `select(PsiElement, CharSequence, int, Editor)` will be called for the function-call node.
3. When the `select()` method is called, you can use the function call PSI element or the editor text to extract the text range that spans the arguments `a` and `b` and return it as `List` with one element.
@@ -47,7 +48,7 @@ This can be achieved by implementing this EP in the following way:
Looking at other implementations can be an effective way to get a better understanding of how this EP works.
To get further insight into this EP, you may want to take a look at [`DocTagSelectioner`](%gh-ic%/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/wordSelection/DocTagSelectioner.java).
It provides the ability to select tag names like `@param` in Javadoc comments.
-Additionally, the [IntelliJ Platform Explorer](https://jb.gg/ipe?extensions=com.intellij.extendWordSelectionHandler) provides a list of open-source plugins with implementations of the `com.intellij.extendWordSelectionHandler` EP.
+Additionally, the [IntelliJ Platform Explorer](https://jb.gg/ipe?extensions=com.intellij.extendWordSelectionHandler) provides a list of open-source plugins with implementations of the .
There are also some important places in the IntelliJ Platform to add breakpoints during debugging.
When _Extend Selection_ is called by the user, it is handled by [`SelectWordHandler`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/editorActions/SelectWordHandler.java).
diff --git a/topics/reference_guide/themes_metadata.md b/topics/reference_guide/themes_metadata.md
index a85b1afe4..b9d849f74 100644
--- a/topics/reference_guide/themes_metadata.md
+++ b/topics/reference_guide/themes_metadata.md
@@ -1,10 +1,10 @@
-
+
# Exposing Theme Metadata
Exposing plugin's UI components' customization keys allowing theme developers to change your components look.
-All available UI Customization Keys that can be used in [Custom Themes](themes_customize.md) must be defined in a dedicated *.themeMetadata.json file which is registered via `com.intellij.themeMetadataProvider` extension point.
+All available UI Customization Keys that can be used in [Custom Themes](themes_customize.md) must be defined in a dedicated *.themeMetadata.json file which is registered via `com.intellij.themeMetadataProvider`.
The following minimal sample demonstrates all details required when exposing UI customization keys of your plugin's UI.
diff --git a/topics/reference_guide/vcs_integration_for_plugins.md b/topics/reference_guide/vcs_integration_for_plugins.md
index 820fdb261..61c8f7f84 100644
--- a/topics/reference_guide/vcs_integration_for_plugins.md
+++ b/topics/reference_guide/vcs_integration_for_plugins.md
@@ -1,4 +1,4 @@
-
+
# Version Control Systems
@@ -86,7 +86,7 @@ This section describes the different components which comprise a VCS integration
### `AbstractVcs`
This is the main entry point for a VCS plugin, which is used by the IntelliJ Platform to retrieve all other services provided by the plugin.
-Register `AbstractVcs` implementation in `com.intellij.vcs` extension point in [plugin.xml](plugin_configuration_file.md), as shown in the following example:
+Register `AbstractVcs` implementation in in [plugin.xml](plugin_configuration_file.md), as shown in the following example:
```xml
diff --git a/topics/tutorials/code_documentation.md b/topics/tutorials/code_documentation.md
index ce02f032e..ba3899f75 100644
--- a/topics/tutorials/code_documentation.md
+++ b/topics/tutorials/code_documentation.md
@@ -1,4 +1,4 @@
-
+
# Documentation
@@ -16,7 +16,7 @@ Plugin authors implement
to show documentation for particular [PSI elements](psi_elements.md).
Implementations of `DocumentationProvider` can be registered either at the `com.intellij.documentationProvider` or the
-`com.intellij.lang.documentationProvider` extension point (EP).
+ (EP).
It is recommended to use the latter one when creating documentation that targets a specific language because providers registered
as `com.intellij.lang.documentationProvider` will only be called for elements from that language.
This is the reason they require the `language` attribute when registering the EP in the [plugin.xml](plugin_configuration_file.md).
diff --git a/topics/tutorials/code_inspections.md b/topics/tutorials/code_inspections.md
index 9b7247a48..16d49a736 100644
--- a/topics/tutorials/code_inspections.md
+++ b/topics/tutorials/code_inspections.md
@@ -46,12 +46,12 @@ The details of the `comparing_string_references_inspection` implementation illus
### Plugin Configuration File
-The `comparing_string_references_inspection` is described as a `com.intellij.localInspection` extension point in the `comparing_string_references_inspection` plugin configuration ([`plugin.xml`](%gh-sdk-samples-master%/comparing_string_references_inspection/src/main/resources/META-INF/plugin.xml)) file.
+The `comparing_string_references_inspection` is described as a in the `comparing_string_references_inspection` plugin configuration ([`plugin.xml`](%gh-sdk-samples-master%/comparing_string_references_inspection/src/main/resources/META-INF/plugin.xml)) file.
There exist two types of inspection extensions:
-* The `com.intellij.localInspection` extension point is used for inspections that operate on one file at a time, and also operate "on-the-fly" as the user edits the file.
-* The `com.intellij.globalInspection` extension point is used for inspections that operate across multiple files, and the associated fix might, for example, refactor code between files.
+* The is used for inspections that operate on one file at a time, and also operate "on-the-fly" as the user edits the file.
+* The is used for inspections that operate across multiple files, and the associated fix might, for example, refactor code between files.
The minimum inspection setup must declare the `implementationClass` and `language` attribute (unless the inspection works on any supported language).
As shown in the `comparing_string_references_inspection` plugin configuration file, other attributes can be defined in the `localInspection` element, either with or without localization.
diff --git a/topics/tutorials/controlling_highlighting.md b/topics/tutorials/controlling_highlighting.md
index ee5dc40b6..45fc58b8b 100644
--- a/topics/tutorials/controlling_highlighting.md
+++ b/topics/tutorials/controlling_highlighting.md
@@ -1,6 +1,6 @@
# Controlling Highlighting
-
+
Suppressing highlighting in the editor programmatically.
@@ -27,7 +27,8 @@ For example, the old version of a file could be created in a different project c
If the old file version used the library that is not used by the project currently, it would cause reporting false-positive code issues.
The IntelliJ Platform exposes the extension point allowing a plugin to decide which highlighting information will be visible in the editor.
-To do that, a plugin has to provide an implementation of [`HighlightInfoFilter`](%gh-ic%/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/HighlightInfoFilter.java) and register it in the `com.intellij.daemon.highlightInfoFilter` extension point.
+To do that, a plugin has to provide an implementation of [`HighlightInfoFilter`](%gh-ic%/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/HighlightInfoFilter.java) and register it
+in the .
It contains a single method `accept()`, which should return `true` if a given `HighlightInfo` should be visible in the editor and `false` to ignore it.
**Examples:**
diff --git a/topics/tutorials/custom_language_support/annotator.md b/topics/tutorials/custom_language_support/annotator.md
index 28a8be4b9..e349dea77 100644
--- a/topics/tutorials/custom_language_support/annotator.md
+++ b/topics/tutorials/custom_language_support/annotator.md
@@ -1,4 +1,4 @@
-
+
# 7. Annotator
@@ -73,7 +73,7 @@ Annotate the `simple:key` literal expression, and differentiate between a well-f
## Register the Annotator
-Using the `com.intellij.annotator` extension point in the plugin configuration file, register the Simple Language annotator class for `JAVA` language:
+Using the in the plugin configuration file, register the Simple Language annotator class for `JAVA` language:
```xml
diff --git a/topics/tutorials/custom_language_support/code_style_settings.md b/topics/tutorials/custom_language_support/code_style_settings.md
index ecb9e7f40..a080aae74 100644
--- a/topics/tutorials/custom_language_support/code_style_settings.md
+++ b/topics/tutorials/custom_language_support/code_style_settings.md
@@ -1,4 +1,4 @@
-
+
# 17. Code Style Settings
@@ -42,7 +42,8 @@ for Simple Language by subclassing [`CodeStyleSettingsProvider`](%gh-ic%/platfor
## Register the Code Style Settings Provider
-The `SimpleCodeStyleSettingsProvider` implementation is registered with the IntelliJ Platform in the plugin configuration file using the `com.intellij.codeStyleSettingsProvider` extension point.
+The `SimpleCodeStyleSettingsProvider` implementation is registered with the IntelliJ Platform in the plugin configuration file
+using the .
```xml
@@ -61,7 +62,7 @@ Define [`SimpleLanguageCodeStyleSettingsProvider`](%gh-sdk-samples-master%/simpl
## Register the Language Code Style Settings Provider
-The `SimpleLanguageCodeStyleSettingsProvider` implementation is registered with the IntelliJ Platform in the plugin configuration file using the `com.intellij.langCodeStyleSettingsProvider` extension point.
+The .
```xml
diff --git a/topics/tutorials/custom_language_support/commenter.md b/topics/tutorials/custom_language_support/commenter.md
index 87e1b6de1..ae03ed6b7 100644
--- a/topics/tutorials/custom_language_support/commenter.md
+++ b/topics/tutorials/custom_language_support/commenter.md
@@ -1,4 +1,4 @@
-
+
# 18. Commenter
@@ -29,7 +29,7 @@ The [`SimpleCommenter`](%gh-sdk-samples-master%/simple_language_plugin/src/main/
## Register the Commenter
-The `SimpleCommenter` implementation is registered in the plugin configuration file using the `com.intellij.lang.commenter` extension point.
+The `SimpleCommenter` implementation is registered in the plugin configuration file using the .
```xml
diff --git a/topics/tutorials/custom_language_support/completion_contributor.md b/topics/tutorials/custom_language_support/completion_contributor.md
index 4d757c10d..db10c33c0 100644
--- a/topics/tutorials/custom_language_support/completion_contributor.md
+++ b/topics/tutorials/custom_language_support/completion_contributor.md
@@ -1,4 +1,4 @@
-
+
# 9. Completion Contributor
@@ -29,7 +29,7 @@ This rudimentary completion contributor always adds "Hello" to the completion va
## Register the Completion Contributor
-The `SimpleCompletionContributor` implementation is registered in the plugin configuration file using the `com.intellij.completion.contributor` extension point and specifying `language="Simple"`.
+The and specifying `language="Simple"`.
```xml
diff --git a/topics/tutorials/custom_language_support/find_usages_provider.md b/topics/tutorials/custom_language_support/find_usages_provider.md
index 9be91992c..ba5d4e29a 100644
--- a/topics/tutorials/custom_language_support/find_usages_provider.md
+++ b/topics/tutorials/custom_language_support/find_usages_provider.md
@@ -1,4 +1,4 @@
-
+
# 11. Find Usages Provider
@@ -31,7 +31,8 @@ See the comments in `FindUsagesProvider` for more information.
## Register the Find Usages Provider
-The `SimpleFindUsagesProvider` implementation is registered with the IntelliJ Platform in the plugin configuration file using the `com.intellij.lang.findUsagesProvider` extension point.
+The `SimpleFindUsagesProvider` implementation is registered with the IntelliJ Platform in the plugin configuration file using
+the .
```xml
diff --git a/topics/tutorials/custom_language_support/folding_builder.md b/topics/tutorials/custom_language_support/folding_builder.md
index 9f033a4c2..0b0df3653 100644
--- a/topics/tutorials/custom_language_support/folding_builder.md
+++ b/topics/tutorials/custom_language_support/folding_builder.md
@@ -1,4 +1,4 @@
-
+
# 12. Folding Builder
@@ -42,7 +42,8 @@ The IntelliJ Platform uses the value to substitute for the key when the code get
## Register the Folding Builder
-The `SimpleFoldingBuilder` implementation is registered with the IntelliJ Platform in the plugin configuration file using the `com.intellij.lang.foldingBuilder` extension point.
+The `SimpleFoldingBuilder` implementation is registered with the IntelliJ Platform in the plugin configuration file using
+the .
```xml
diff --git a/topics/tutorials/custom_language_support/formatter.md b/topics/tutorials/custom_language_support/formatter.md
index 696124e18..c62a16dc3 100644
--- a/topics/tutorials/custom_language_support/formatter.md
+++ b/topics/tutorials/custom_language_support/formatter.md
@@ -1,4 +1,4 @@
-
+
# 16. Formatter
@@ -55,7 +55,7 @@ Create [`SimpleFormattingModelBuilder`](%gh-sdk-samples-master%/simple_language_
## Register the Formatter
-The `SimpleFormattingModelBuilder` implementation is registered with the IntelliJ Platform in the plugin configuration file using the `com.intellij.lang.formatter` extension point.
+The .
```xml
diff --git a/topics/tutorials/custom_language_support/go_to_symbol_contributor.md b/topics/tutorials/custom_language_support/go_to_symbol_contributor.md
index 78ce51c9c..3c7eece64 100644
--- a/topics/tutorials/custom_language_support/go_to_symbol_contributor.md
+++ b/topics/tutorials/custom_language_support/go_to_symbol_contributor.md
@@ -1,4 +1,4 @@
-
+
# 13. Go To Symbol Contributor
@@ -28,7 +28,8 @@ Add the following method to [`SimplePsiImplUtil`](%gh-sdk-samples-master%/simple
```
{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/psi/impl/SimplePsiImplUtil.java" include-symbol="getPresentation"}
-In addition, to provide an icon for the displayed items, extend [`IconProvider`](%gh-ic%/platform/core-api/src/com/intellij/ide/IconProvider.java) and register it in `com.intellij.iconProvider` extension point. See [`SimplePropertyIconProvider`](%gh-sdk-samples-master%/simple_language_plugin/src/main/java/org/intellij/sdk/language/SimplePropertyIconProvider.java):
+In addition, to provide an icon for the displayed items, extend [`IconProvider`](%gh-ic%/platform/core-api/src/com/intellij/ide/IconProvider.java) and register
+it in . See [`SimplePropertyIconProvider`](%gh-sdk-samples-master%/simple_language_plugin/src/main/java/org/intellij/sdk/language/SimplePropertyIconProvider.java):
```java
```
@@ -59,7 +60,8 @@ to create [`SimpleChooseByNameContributor`](%gh-sdk-samples-master%/simple_langu
## Register the Go To Symbol Contributor
-The `SimpleChooseByNameContributor` implementation is registered with the IntelliJ Platform in the plugin configuration file using the `com.intellij.gotoSymbolContributor` extension point.
+The `SimpleChooseByNameContributor` implementation is registered with the IntelliJ Platform in the plugin configuration file
+using the .
```xml
diff --git a/topics/tutorials/custom_language_support/language_and_filetype.md b/topics/tutorials/custom_language_support/language_and_filetype.md
index 160211800..b19cd1017 100644
--- a/topics/tutorials/custom_language_support/language_and_filetype.md
+++ b/topics/tutorials/custom_language_support/language_and_filetype.md
@@ -54,7 +54,7 @@ The [`SimpleFileType`](%gh-sdk-samples-master%/simple_language_plugin/src/main/j
## Register the File Type
-The Simple Language file type is registered via the `com.intellij.fileType` extension point in [plugin.xml](plugin_configuration_file.md) and registered with *.simple extension:
+The Simple Language file type is registered via the in [plugin.xml](plugin_configuration_file.md) and registered with *.simple extension:
```xml
diff --git a/topics/tutorials/custom_language_support/lexer_and_parser_definition.md b/topics/tutorials/custom_language_support/lexer_and_parser_definition.md
index 3488715d3..67d2cdf86 100644
--- a/topics/tutorials/custom_language_support/lexer_and_parser_definition.md
+++ b/topics/tutorials/custom_language_support/lexer_and_parser_definition.md
@@ -1,4 +1,4 @@
-
+
# 4. Lexer and Parser Definition
@@ -84,7 +84,7 @@ To avoid unnecessary classloading when initializing the extension point implemen
## Register the Parser Definition
Registering the parser definition in the [plugin.xml](plugin_configuration_file.md) file makes it available to the IntelliJ Platform.
-Use the `com.intellij.lang.parserDefinition` extension point for registration.
+Use the for registration.
For example, see simple_language_plugin/src/main/resources/META-INF/plugin.xml.
```xml
diff --git a/topics/tutorials/custom_language_support/line_marker_provider.md b/topics/tutorials/custom_language_support/line_marker_provider.md
index 619b5bf28..77b81deb7 100644
--- a/topics/tutorials/custom_language_support/line_marker_provider.md
+++ b/topics/tutorials/custom_language_support/line_marker_provider.md
@@ -1,4 +1,4 @@
-
+
# 8. Line Marker Provider
@@ -84,7 +84,8 @@ final class MyCorrectLineMarkerProvider implements LineMarkerProvider {
## Register the Line Marker Provider
-The `SimpleLineMarkerProvider` implementation is registered with the IntelliJ Platform in the plugin configuration file using the `com.intellij.codeInsight.lineMarkerProvider` extension point.
+The `SimpleLineMarkerProvider` implementation is registered with the IntelliJ Platform in the plugin configuration file using
+the .
```xml
diff --git a/topics/tutorials/custom_language_support/reference_contributor.md b/topics/tutorials/custom_language_support/reference_contributor.md
index 58ea9fc4b..905e830f5 100644
--- a/topics/tutorials/custom_language_support/reference_contributor.md
+++ b/topics/tutorials/custom_language_support/reference_contributor.md
@@ -1,4 +1,4 @@
-
+
# 10. Reference Contributor
@@ -141,7 +141,8 @@ Contribute a reference to each usage of a property:
## Register the Reference Contributor
-The `SimpleReferenceContributor` implementation is registered using the `com.intellij.psi.referenceContributor` extension point and specifying `language="JAVA"`.
+The `SimpleReferenceContributor` implementation is registered using
+the and specifying `language="JAVA"`.
```xml
@@ -175,7 +176,8 @@ As long as an element is a `SimpleProperty` it is allowed to be refactored:
## Register the Refactoring Support Provider
-The `SimpleRefactoringSupportProvider` implementation is registered with the IntelliJ Platform in the plugin configuration file using the `com.intellij.lang.refactoringSupport` extension point.
+The `SimpleRefactoringSupportProvider` implementation is registered with the IntelliJ Platform in the plugin configuration file
+using the .
```xml
diff --git a/topics/tutorials/custom_language_support/spell_checking_strategy.md b/topics/tutorials/custom_language_support/spell_checking_strategy.md
index 0ace2411b..caaf77db2 100644
--- a/topics/tutorials/custom_language_support/spell_checking_strategy.md
+++ b/topics/tutorials/custom_language_support/spell_checking_strategy.md
@@ -1,4 +1,4 @@
-
+
# 21. Spell Checking
@@ -28,7 +28,7 @@ The [`SimpleSpellcheckingStrategy`](%gh-sdk-samples-master%/simple_language_plug
## Register the SimpleSpellcheckingStrategy
The implementation is registered with the IntelliJ Platform in the plugin
-configuration file using the `com.intellij.spellchecker.support` extension point.
+configuration file using the .
```xml
diff --git a/topics/tutorials/custom_language_support/structure_aware_navbar.md b/topics/tutorials/custom_language_support/structure_aware_navbar.md
index 75bef9dcf..71c76790a 100644
--- a/topics/tutorials/custom_language_support/structure_aware_navbar.md
+++ b/topics/tutorials/custom_language_support/structure_aware_navbar.md
@@ -1,4 +1,4 @@
-
+
# 15. Structure Aware Navigation Bar
@@ -31,7 +31,7 @@ The [`SimpleStructureAwareNavbar`](%gh-sdk-samples-master%/simple_language_plugi
## Register the Structure-Aware Navbar
The `SimpleStructureAwareNavbar` implementation is registered with the IntelliJ Platform in the plugin
-configuration file using the `com.intellij.navbar` extension point.
+configuration file using the .
```xml
diff --git a/topics/tutorials/custom_language_support/structure_view_factory.md b/topics/tutorials/custom_language_support/structure_view_factory.md
index 40271ce32..d716687a6 100644
--- a/topics/tutorials/custom_language_support/structure_view_factory.md
+++ b/topics/tutorials/custom_language_support/structure_view_factory.md
@@ -1,4 +1,4 @@
-
+
# 14. Structure View Factory
@@ -52,7 +52,8 @@ The `SortableTreeElement` represents an item in a smart tree that allows using t
## Register the Structure View Factory
-The `SimpleStructureViewFactory` implementation is registered with the IntelliJ Platform in the plugin configuration file using the `com.intellij.lang.psiStructureViewFactory` extension point.
+The `SimpleStructureViewFactory` implementation is registered with the IntelliJ Platform in the plugin configuration file using
+the .
```xml
diff --git a/topics/tutorials/custom_language_support/syntax_highlighter_and_color_settings_page.md b/topics/tutorials/custom_language_support/syntax_highlighter_and_color_settings_page.md
index bb15dc72e..656a873cb 100644
--- a/topics/tutorials/custom_language_support/syntax_highlighter_and_color_settings_page.md
+++ b/topics/tutorials/custom_language_support/syntax_highlighter_and_color_settings_page.md
@@ -1,4 +1,4 @@
-
+
# 5. Syntax Highlighter and Color Settings Page
@@ -41,7 +41,7 @@ subclasses [`SyntaxHighlighterFactory`](%gh-ic%/platform/editor-ui-api/src/com/i
### Register the Syntax Highlighter Factory
-Register the factory with the IntelliJ Platform in the plugin configuration file using the `com.intellij.lang.syntaxHighlighterFactory` extension point.
+Register the factory with the IntelliJ Platform in the plugin configuration file using the .
```xml
@@ -82,7 +82,7 @@ AttributesDescriptor[] DESCRIPTORS = new AttributesDescriptor[] {
### Register the Color Settings Page
-Register the Simple Language color settings page with the IntelliJ Platform in the plugin configuration file using the `com.intellij.colorSettingsPage` extension point.
+Register the Simple Language color settings page with the IntelliJ Platform in the plugin configuration file using the .
```xml
diff --git a/topics/tutorials/file_and_code_templates/providing_file_templates.md b/topics/tutorials/file_and_code_templates/providing_file_templates.md
index 09449e6d3..3f1c8ce71 100644
--- a/topics/tutorials/file_and_code_templates/providing_file_templates.md
+++ b/topics/tutorials/file_and_code_templates/providing_file_templates.md
@@ -1,4 +1,4 @@
-
+
# Providing File and Code Templates
@@ -56,12 +56,12 @@ It includes templates located in the fileTemplates/internal directo
#### Other
The Other category contains other templates organized in groups.
-It includes templates located in the fileTemplates/j2ee directory and registered via the `com.intellij.fileTemplateGroup` extension point (EP).
+It includes templates located in the fileTemplates/j2ee directory and registered via the .
Note that the j2ee directory name is historical and unrelated to the J2EE technology.
This category is intended for templates that are not used for creating core language entities or are used less frequently by users, e.g., a specific XML configuration file, a framework-specific class in Java language, etc.
To include file templates in the Other section of the Settings | Editor | File and Code Templates settings page, provide an implementation of the
[`FileTemplateGroupDescriptorFactory`](%gh-ic%/platform/lang-api/src/com/intellij/ide/fileTemplates/FileTemplateGroupDescriptorFactory.java)
-and register it via the `com.intellij.fileTemplateGroup` EP.
+and register it via the .
**Example:**
[`MavenFileTemplateGroupFactory`](%gh-ic%/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenFileTemplateGroupFactory.java)
@@ -99,7 +99,7 @@ A file template body can use a set of [predefined properties](https://www.jetbra
Some languages or frameworks may require additional properties exposed to existing templates.
To provide custom properties, implement
[`DefaultTemplatePropertiesProvider`](%gh-ic%/platform/lang-api/src/com/intellij/ide/fileTemplates/DefaultTemplatePropertiesProvider.java)
-and register it via the `com.intellij.defaultTemplatePropertiesProvider` EP.
+and register it via the .
**Example:** Java Plugin's
[`TemplatePackagePropertyProvider`](%gh-ic%/java/java-impl/src/com/intellij/ide/fileTemplates/TemplatePackagePropertyProvider.java)
diff --git a/topics/tutorials/file_and_code_templates/using_file_templates.md b/topics/tutorials/file_and_code_templates/using_file_templates.md
index 6657bbf50..ab6a3c180 100644
--- a/topics/tutorials/file_and_code_templates/using_file_templates.md
+++ b/topics/tutorials/file_and_code_templates/using_file_templates.md
@@ -31,7 +31,7 @@ File templates assigned to the [Files](providing_file_templates.md#file
Sometimes, creating a file from a given template in a specific project place doesn't make sense, or a template requires some additional properties for its content.
It is possible to control a file template's visibility and its available properties using
[`CreateFromTemplateHandler`](%gh-ic%/platform/lang-impl/src/com/intellij/ide/fileTemplates/CreateFromTemplateHandler.java)
-implementation registered in the `com.intellij.createFromTemplateHandler` EP.
+implementation registered in the .
**Example:**
[`JavaCreateFromTemplateHandler`](%gh-ic%/java/java-impl/src/com/intellij/ide/fileTemplates/JavaCreateFromTemplateHandler.java)
@@ -110,7 +110,7 @@ protected void buildDialog(Project project, PsiDirectory directory,
```
As file templates are placed in the fileTemplates/internal directory, they are not listed in the Settings | Editor | File and Code Templates settings page, and users can't adjust them to their needs.
-Internal templates can be exposed in the Files category by additionally registering them via the `com.intellij.internalFileTemplate` EP, e.g.:
+Internal templates can be exposed in the Files category by additionally registering them via the , e.g.:
```xml
@@ -126,7 +126,7 @@ Adjusting created templates manually by replacing dynamic parts with properties
It is possible to speed up this process by replacing known elements like package or class names with template properties placeholder.
It can be achieved by implementing the
[`SaveFileAsTemplateHandler`](%gh-ic%/platform/lang-impl/src/com/intellij/ide/actions/SaveFileAsTemplateHandler.java)
-and registering it via the `com.intellij.saveFileAsTemplateHandler` EP.
+and registering it via the .
**Example:**
[`SaveJavaAsTemplateHandler`](%gh-ic%/java/java-impl/src/com/intellij/ide/fileTemplates/SaveJavaAsTemplateHandler.java) replacing existing class and package names with `${NAME}` and `${PACKAGE_NAME}` properties placeholders respectively.
diff --git a/topics/tutorials/live_templates/creating_live_template_functions.md b/topics/tutorials/live_templates/creating_live_template_functions.md
index 00a0c1532..6b1a694f7 100644
--- a/topics/tutorials/live_templates/creating_live_template_functions.md
+++ b/topics/tutorials/live_templates/creating_live_template_functions.md
@@ -1,4 +1,4 @@
-
+
# Creating New Functions for Live Templates
@@ -55,7 +55,7 @@ The argument to the `titleCase` function is `SELECTION`, which tells the Intelli
## Register Extension Point
-Using the `com.intellij.liveTemplateMacro` extension point, register the implementation with the IntelliJ Platform.
+Using the , register the implementation with the IntelliJ Platform.
```xml
diff --git a/topics/tutorials/live_templates/providing_live_templates.md b/topics/tutorials/live_templates/providing_live_templates.md
index 1d4615b25..f1059770d 100644
--- a/topics/tutorials/live_templates/providing_live_templates.md
+++ b/topics/tutorials/live_templates/providing_live_templates.md
@@ -1,4 +1,4 @@
-
+
# Providing Live Templates
@@ -104,9 +104,9 @@ Depending on the version of the IntelliJ Platform, different steps are used to c
Using the `com.intellij.defaultLiveTemplates` and `com.intellij.liveTemplateContext` extension points, register the implementations with the IntelliJ Platform.
-The `file` attribute in `com.intellij.defaultLiveTemplates` EP specifies `path/filename` under the src/main/resources folder.
+The `file` attribute in specifies `path/filename` under the src/main/resources folder.
-Specify required `contextId` attribute in `com.intellij.liveTemplateContext` EP instead of [`TemplateContextType`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/template/TemplateContextType.java) constructor (existing declarations will continue working).
+Specify required `contextId` attribute in instead of [`TemplateContextType`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/template/TemplateContextType.java) constructor (existing declarations will continue working).
```xml
@@ -122,7 +122,7 @@ Specify required `contextId` attribute in `com.intellij.liveTemplateContext` EP
Using the `com.intellij.defaultLiveTemplates` and `com.intellij.liveTemplateContext` extension points, register the implementations with the IntelliJ Platform.
-The `file` attribute in the `com.intellij.defaultLiveTemplates` EP specifies `path/filename` under the src/main/resources folder.
+The `file` attribute in the specifies `path/filename` under the src/main/resources folder.
```xml
diff --git a/topics/tutorials/postfix_completion/postfix_templates.md b/topics/tutorials/postfix_completion/postfix_templates.md
index b3451a471..c791caf89 100644
--- a/topics/tutorials/postfix_completion/postfix_templates.md
+++ b/topics/tutorials/postfix_completion/postfix_templates.md
@@ -1,4 +1,4 @@
-
+
# Postfix Templates
@@ -8,7 +8,7 @@ The IntelliJ Platform allows plugins to provide custom postfix templates specifi
To provide custom postfix templates for an existing or custom language, register an implementation of
[`PostfixTemplateProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/PostfixTemplateProvider.java)
-in the `com.intellij.codeInsight.template.postfixTemplateProvider` extension point (EP).
+in the (EP).
The `PostfixTemplateProvider` extension contains the list of templates that extend the
[`PostfixTemplate`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/PostfixTemplate.java)
diff --git a/topics/tutorials/project_wizard/adding_new_steps.md b/topics/tutorials/project_wizard/adding_new_steps.md
index 1547a68c7..c0e6d237e 100644
--- a/topics/tutorials/project_wizard/adding_new_steps.md
+++ b/topics/tutorials/project_wizard/adding_new_steps.md
@@ -1,4 +1,4 @@
-
+
# Adding New Steps to Project Wizard
@@ -14,7 +14,7 @@ See the [](creating_plugin_project.md) section for details.
## Register Module Builder
Project configuration settings depend on the project's module type.
-Register a new `com.intellij.moduleBuilder` extension point in the [plugin.xml](plugin_configuration_file.md) configuration file.
+Register a new in the [plugin.xml](plugin_configuration_file.md) configuration file.
```xml
diff --git a/topics/tutorials/run_configurations_tutorial.md b/topics/tutorials/run_configurations_tutorial.md
index 4e3fd1192..0a212d6a8 100644
--- a/topics/tutorials/run_configurations_tutorial.md
+++ b/topics/tutorials/run_configurations_tutorial.md
@@ -1,4 +1,4 @@
-
+
# Run Configurations Tutorial
@@ -30,7 +30,7 @@ Implement [`ConfigurationType`](%gh-ic%/platform/execution/src/com/intellij/exec
## Register the `ConfigurationType`
-Register implemented configuration type in `com.intellij.configurationType` extension point in the [plugin.xml](%gh-sdk-samples-master%/run_configuration/src/main/resources/META-INF/plugin.xml):
+Register implemented configuration type in in the [plugin.xml](%gh-sdk-samples-master%/run_configuration/src/main/resources/META-INF/plugin.xml):
```xml
diff --git a/topics/tutorials/settings_tutorial.md b/topics/tutorials/settings_tutorial.md
index 406d1ffb4..2debe73d8 100644
--- a/topics/tutorials/settings_tutorial.md
+++ b/topics/tutorials/settings_tutorial.md
@@ -1,4 +1,4 @@
-
+
# Settings Tutorial
@@ -34,8 +34,8 @@ It is based on the [IntelliJ Platform Persistence Model](persisting_state_of_com
### Declaring `AppSettings`
Given a [Light Service](plugin_services.md#light-services) is not used, the persistent data class must be declared as a [Service](plugin_services.md#declaring-a-service) EP in the [plugin.xml](plugin_configuration_file.md) file.
-If these were Project Settings, the `com.intellij.projectService` EP would be used.
-However, because these are Application Settings, the `com.intellij.applicationService` EP is used with the fully qualified name (FQN) of the implementation class:
+If these were Project Settings, the would be used.
+However, because these are Application Settings, the is used with the fully qualified name (FQN) of the implementation class:
```xml
diff --git a/topics/tutorials/syntax_errors.md b/topics/tutorials/syntax_errors.md
index 5aa11b05a..9a253c6bc 100644
--- a/topics/tutorials/syntax_errors.md
+++ b/topics/tutorials/syntax_errors.md
@@ -1,6 +1,6 @@
# Syntax Errors
-
+
Suppressing syntax errors in the editor programmatically.
@@ -23,7 +23,8 @@ In some cases highlighting syntax errors is insufficient or even unnecessary:
The IntelliJ Platform allows plugins to disable highlighting particular syntax errors.
These errors can be optionally handled by additional Annotators or [Inspections](code_inspections.md) if needed.
-To control which `PsiErrorElement`s should be reported and which can be ignored, a plugin has to provide an implementation of [`HighlightErrorFilter`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/highlighting/HighlightErrorFilter.java) and register it in the `com.intellij.highlightErrorFilter` extension point.
+To control which `PsiErrorElement`s should be reported and which can be ignored, a plugin has to provide an implementation of [`HighlightErrorFilter`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/highlighting/HighlightErrorFilter.java) and
+register it in the .
It contains a single abstract method `shouldHighlightErrorElement()` which should return `false` if a given `PsiErrorElement` should not be highlighted in the editor.
**Examples:**
diff --git a/topics/tutorials/using_kotlin.md b/topics/tutorials/using_kotlin.md
index 3b7b27e73..f2d7b2782 100644
--- a/topics/tutorials/using_kotlin.md
+++ b/topics/tutorials/using_kotlin.md
@@ -230,7 +230,7 @@ to implement any [plugin.xml](plugin_configuration_file.md) declara
Managing the lifecycle of extensions is the platform's responsibility, and instantiating these classes as Kotlin singletons may cause issues.
A notable exception is [`FileType`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileTypes/FileType.java)
-(`com.intellij.fileType` extension point), see also the inspection descriptions below.
+(), see also the inspection descriptions below.
Problems are highlighted via these inspections (2023.2):
diff --git a/topics/user_interface_components/notifications.md b/topics/user_interface_components/notifications.md
index 518004720..d6c2dbcf5 100644
--- a/topics/user_interface_components/notifications.md
+++ b/topics/user_interface_components/notifications.md
@@ -1,4 +1,4 @@
-
+
# Notifications
@@ -43,7 +43,8 @@ Other [`HintManager`](%gh-ic%/platform/platform-api/src/com/intellij/codeInsight
Notifications that appear at the top of the file editor are a great way to ask the user to take an important action that would otherwise impede their experience if ignored (e.g., missing SDK, setup/project configuration requiring user input).
-Register an implementation of [`EditorNotificationProvider`](%gh-ic%/platform/platform-api/src/com/intellij/ui/EditorNotificationProvider.java) using `com.intellij.editorNotificationProvider` extension point.
+Register an implementation of [`EditorNotificationProvider`](%gh-ic%/platform/platform-api/src/com/intellij/ui/EditorNotificationProvider.java)
+using .
If access to indexes is not required, it can be marked [dumb-aware](indexing_and_psi_stubs.md#DumbAwareAPI).
A commonly used UI implementation is [`EditorNotificationPanel`](%gh-ic%/platform/platform-api/src/com/intellij/ui/EditorNotificationPanel.java).
@@ -98,7 +99,8 @@ Please see the following steps for setup, depending on the target platform versi
-`NotificationGroup` is registered in [plugin.xml](plugin_configuration_file.md) using the ` com.intellij.notificationGroup ` extension point.
+`NotificationGroup` is registered in [plugin.xml](plugin_configuration_file.md) using
+the .
Use `key` to provide a localized group display name.
```xml
diff --git a/topics/user_interface_components/status_bar_widgets.md b/topics/user_interface_components/status_bar_widgets.md
index e8b9e4e46..90d9c064b 100644
--- a/topics/user_interface_components/status_bar_widgets.md
+++ b/topics/user_interface_components/status_bar_widgets.md
@@ -1,4 +1,4 @@
-
+
# Status Bar Widgets
@@ -19,7 +19,7 @@ Due to the prominent presentation and limited space, they should be used only fo
The starting point for extending the status bar with new widgets is the
[`StatusBarWidgetFactory`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/wm/StatusBarWidgetFactory.java)
-interface, which is registered in the `com.intellij.statusBarWidgetFactory` extension point.
+interface, which is registered in the .
Note: `id` attribute must be provided in plugin.xml registration and match value from `StatusBarWidgetFactory.getId()`.
In case a widget provides information or functionality related to the editor files, consider extending the
diff --git a/topics/user_interface_components/tool_windows.md b/topics/user_interface_components/tool_windows.md
index ac4683a3f..767ecc315 100644
--- a/topics/user_interface_components/tool_windows.md
+++ b/topics/user_interface_components/tool_windows.md
@@ -26,7 +26,7 @@ Alternatively, using [programmatic setup](#programmatic-setup), the tool window
### Declarative Setup
-The tool window is registered in [plugin.xml](plugin_configuration_file.md) using the `com.intellij.toolWindow` extension point.
+The tool window is registered in [plugin.xml](plugin_configuration_file.md) using the .
The extension point attributes specify all the data which is necessary to display the tool window button:
* The `id` attribute (required) of the tool window which corresponds to the text displayed on the tool window button.