`](plugin_configuration_file.md#idea-plugin__projectListeners) |
-| ![Non-Dynamic][non-dynamic] | Non-Dynamic Extension Point | Installation/update of plugin requires IDE restart ([Dynamic Plugins](dynamic_plugins.md)) |
+| Icon | Description | Details |
+|-----------------------------------|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ![Deprecated][deprecated] | Deprecated API | Please see code documentation for replacement |
+| ![Removal][removal] | Scheduled for Removal API | Please see code documentation for replacement |
+| ![Obsolete][obsolete] | Obsolete API | Do not use in new code, please see code documentation for replacement ([](verifying_plugin_compatibility.md#obsolete-api)) |
+| ![Experimental API][experimental] | Experimental API | Annotated with [`@ApiStatus.Experimental`](https://github.com/JetBrains/java-annotations/blob/master/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), API might be altered or removed without prior notice |
+| ![Internal API][internal] | Internal API | Annotated with [`@ApiStatus.Internal`](https://github.com/JetBrains/java-annotations/blob/master/common/src/main/java/org/jetbrains/annotations/ApiStatus.java), must not be used by 3rd party, see [](api_internal.md) |
+| ![Project-Level][project-level] | Project-Level Extension Point/Topic | Can have [`Project`](%gh-ic%/platform/core-api/src/com/intellij/openapi/project/Project.java) as constructor parameter
Extension Point: Declared with `area="IDEA_PROJECT"`
Listener: registered in [``](plugin_configuration_file.md#idea-plugin__projectListeners)
|
+| ![Non-Dynamic][non-dynamic] | Non-Dynamic Extension Point | Installation/update of plugin requires IDE restart ([Dynamic Plugins](dynamic_plugins.md)) |
[deprecated]: https://img.shields.io/badge/-Deprecated-lightgrey?style=flat-square
[removal]: https://img.shields.io/badge/-Removal-red?style=flat-square
diff --git a/topics/appendix/resources/learning_resources.md b/topics/appendix/resources/learning_resources.md
index a36fd1374..ecd7fc97a 100644
--- a/topics/appendix/resources/learning_resources.md
+++ b/topics/appendix/resources/learning_resources.md
@@ -29,17 +29,17 @@ A tutorial blog post series for JavaScript developers.
## Webinars
-| Webinar | Info |
-|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **Busy Plugin Developers #5**
Matthias Koch, 09/2022 | Building Extensions for Rider and ReSharper |
-| **Busy Plugin Developers #4**
Dmitry Kandalov/Yann Cebron, 04/2022 | Adding IDE Features at runtime using LivePlugin |
-| **Busy Plugin Developers #3**
Jakub Chrzanowski/Anna Maltceva/Yann Cebron, 11/2021 | Building Themes for IntelliJ-based IDEs
Latest updates to JetBrains Marketplace |
-| **Busy Plugin Developers #2**
Anna Maltceva/Łukasz Wawrzyk/Jakub Chrzanowski, 09/2021 | How to improve your Marketplace plugin page to attract more users
ide-probe, a testing and benchmarking framework for IntelliJ-based IDEs |
-| **Busy Plugin Developers #1**
Jakub Chrzanowski/Semyon Atamas/Paweł Lipski, 07/2021 | What is Gradle IntelliJ Plugin
New features of Gradle IntelliJ Plugin
How to start with Gradle IntelliJ Plugin
Types of signing and how they work
How JetBrains Marketplace signature works
How to sign your plugin
Tools and tips for testing UI of IntelliJ Plugins |
-| **Make IntelliJ IDEA Your Own**
Sirisha Pratha, 05/2021 | In this session, we'll explore the benefits provided by IntelliJ IDEA's customization options, and you will learn how to make the IDE your own. We will also look at the plugins available on the JetBrains Marketplace, discuss the process of developing them, and demo a few custom ones. |
-| **IntelliJ IDEA Conf 2021**
Various Speakers, 02/2021 | Playlist includes a number of presentations related to plugin development |
-| **Busy Plugin Developers #0**
Mikhail Vink/Jakub Chrzanowski/Yann Cebron, 12/2020 | IntelliJ Platform Plugin Template
Plugin DevKit Features
IntelliJ Platform Explorer
What's coming in 2021?
Introduction to the Marketplace
How to make your plugin successful?
Sell on the Marketplace |
-| **How We Built Comma, the Raku IDE, on the IntelliJ Platform**
Jonathan Worthington, 01/2020 | How to build custom language support
How to go from a language support plugin to an IDE
Lessons Learned
[Blog post](https://blog.jetbrains.com/platform/2020/01/webinar-recording-how-we-built-comma-the-raku-ide-on-the-intellij-platform/) |
-| **Building IntelliJ IDEA plugins in Scala**
Igal Tabachnik, 2020 | In this talk, I will show how to create plugins for IDEA from scratch in Scala, and show why Scala's unique features make it a great fit for such tasks as inspecting and manipulating Abstract Syntax Trees (ASTs) to create your own custom suggestions and quick-fixes. |
-| **Live Development of a PyCharm Plugin**
Joachim Ansorg, 2019 | Background and architecture of IntelliJ plugins
Development using tests
Implementing interesting extension points
Viewing the plugin in the IDE (PyCharm)
[Blog post](https://blog.jetbrains.com/pycharm/2019/01/webinar-recording-live-development-of-a-pycharm-plugin-with-joachim-ansorg/) |
-| **Build Developer Tools On Top of IntelliJ Platform**
Dmitry Jemerov, 2013 | This webinar makes an overview on IntelliJ Platform and explains how you can use it for building your own products. |
+| Webinar | Info |
+|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **Busy Plugin Developers #5** Matthias Koch, 09/2022
|
Building Extensions for Rider and ReSharper
|
+| **Busy Plugin Developers #4** Dmitry Kandalov/Yann Cebron, 04/2022
|
Adding IDE Features at runtime using LivePlugin
|
+| **Busy Plugin Developers #3** Jakub Chrzanowski/Anna Maltceva/Yann Cebron, 11/2021
|
Building Themes for IntelliJ-based IDEs
Latest updates to JetBrains Marketplace
|
+| **Busy Plugin Developers #2** Anna Maltceva/Łukasz Wawrzyk/Jakub Chrzanowski, 09/2021
|
How to improve your Marketplace plugin page to attract more users
ide-probe, a testing and benchmarking framework for IntelliJ-based IDEs
|
+| **Busy Plugin Developers #1** Jakub Chrzanowski/Semyon Atamas/Paweł Lipski, 07/2021
|
What is Gradle IntelliJ Plugin
New features of Gradle IntelliJ Plugin
How to start with Gradle IntelliJ Plugin
Types of signing and how they work
How JetBrains Marketplace signature works
How to sign your plugin
Tools and tips for testing UI of IntelliJ Plugins
|
+| **Make IntelliJ IDEA Your Own** Sirisha Pratha, 05/2021
|
In this session, we'll explore the benefits provided by IntelliJ IDEA's customization options, and you will learn how to make the IDE your own. We will also look at the plugins available on the JetBrains Marketplace, discuss the process of developing them, and demo a few custom ones.
|
+| **IntelliJ IDEA Conf 2021** Various Speakers, 02/2021
|
Playlist includes a number of presentations related to plugin development
|
+| **Busy Plugin Developers #0** Mikhail Vink/Jakub Chrzanowski/Yann Cebron, 12/2020
|
IntelliJ Platform Plugin Template
Plugin DevKit Features
IntelliJ Platform Explorer
What's coming in 2021?
Introduction to the Marketplace
How to make your plugin successful?
Sell on the Marketplace
|
+| **How We Built Comma, the Raku IDE, on the IntelliJ Platform** Jonathan Worthington, 01/2020
|
How to build custom language support
How to go from a language support plugin to an IDE
Lessons Learned
[Blog post](https://blog.jetbrains.com/platform/2020/01/webinar-recording-how-we-built-comma-the-raku-ide-on-the-intellij-platform/)
|
+| **Building IntelliJ IDEA plugins in Scala** Igal Tabachnik, 2020
|
In this talk, I will show how to create plugins for IDEA from scratch in Scala, and show why Scala's unique features make it a great fit for such tasks as inspecting and manipulating Abstract Syntax Trees (ASTs) to create your own custom suggestions and quick-fixes.
|
+| **Live Development of a PyCharm Plugin** Joachim Ansorg, 2019
|
Background and architecture of IntelliJ plugins
Development using tests
Implementing interesting extension points
Viewing the plugin in the IDE (PyCharm)
[Blog post](https://blog.jetbrains.com/pycharm/2019/01/webinar-recording-live-development-of-a-pycharm-plugin-with-joachim-ansorg/)
|
+| **Build Developer Tools On Top of IntelliJ Platform** Dmitry Jemerov, 2013
|
This webinar makes an overview on IntelliJ Platform and explains how you can use it for building your own products.
|
diff --git a/topics/appendix/tools/ide_tooling/internal_actions/internal_ui_inspector.md b/topics/appendix/tools/ide_tooling/internal_actions/internal_ui_inspector.md
index 4486c4c59..87a4f3fc2 100644
--- a/topics/appendix/tools/ide_tooling/internal_actions/internal_ui_inspector.md
+++ b/topics/appendix/tools/ide_tooling/internal_actions/internal_ui_inspector.md
@@ -43,28 +43,28 @@ Custom Swing components can also provide additional properties via [`UiInspector
### Editor
-| Type | Properties |
-|-----------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [`ActiveGutterRenderer`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/editor/markup/ActiveGutterRenderer.java)
(2023.1+) | Clicked Renderer (Class) - `ActiveGutterRenderer` instance/class |
-| [`GutterIconRenderer`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/editor/markup/GutterIconRenderer.java)
(2023.1+) | Clicked Renderer (Class) - `GutterIconRenderer` instance/class
Accessible Name - `GutterIconRenderer.getAccessibleName()`
Icon - `GutterIconRenderer.getIcon()`
Marker Info - Element / Navigation Handler - [`LineMarkerInfo.getElement() / getNavigationHandler()`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/daemon/LineMarkerInfo.java) |
-| [`GutterMark`](%gh-ic%/platform/editor-ui-api/src/com/intellij/codeInsight/daemon/GutterMark.java) | gutter renderer - [`GutterMark`](%gh-ic%/platform/editor-ui-api/src/com/intellij/codeInsight/daemon/GutterMark.java) implementation |
-| [`Inlay`](inlay_hints.md)
(2023.1+) | Inlay Renderer (Class) - `Inlay.getRenderer()` instance/class
Inlay Gutter Renderer - `Inlay.getGutterIconRenderer()`
Inlay Properties - `Inlay.getProperties()` |
-| [`IntentionAction`/`QuickFix`](code_inspections_and_intentions.md) | intention action/quick fix - [`IntentionAction`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/intention/IntentionAction.java) / [`QuickFix`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInspection/QuickFix.java) implementation |
+| Type | Properties |
+|------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [`ActiveGutterRenderer`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/editor/markup/ActiveGutterRenderer.java)
(2023.1+)
| Clicked Renderer (Class) - `ActiveGutterRenderer` instance/class
|
+| [`GutterIconRenderer`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/editor/markup/GutterIconRenderer.java)
(2023.1+)
| Clicked Renderer (Class) - `GutterIconRenderer` instance/class
Accessible Name - `GutterIconRenderer.getAccessibleName()`
Icon - `GutterIconRenderer.getIcon()`
Marker Info - Element / Navigation Handler - [`LineMarkerInfo.getElement() / getNavigationHandler()`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/daemon/LineMarkerInfo.java)
|
+| [`GutterMark`](%gh-ic%/platform/editor-ui-api/src/com/intellij/codeInsight/daemon/GutterMark.java) | gutter renderer - [`GutterMark`](%gh-ic%/platform/editor-ui-api/src/com/intellij/codeInsight/daemon/GutterMark.java) implementation
|
+| [`Inlay`](inlay_hints.md)
(2023.1+)
| Inlay Renderer (Class) - `Inlay.getRenderer()` instance/class
Inlay Gutter Renderer - `Inlay.getGutterIconRenderer()`
Inlay Properties - `Inlay.getProperties()`
|
+| [`IntentionAction`/`QuickFix`](code_inspections_and_intentions.md) | intention action/quick fix - [`IntentionAction`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/intention/IntentionAction.java) / [`QuickFix`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInspection/QuickFix.java) implementation
|
### Action
-| Type | Properties |
-|-------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [`AnAction`](basic_action_system.md) | Action - [`AnAction`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnAction.java) implementation
Action ID - Action `id`
Action Plugin ID - contributing plugin |
-| [`ActionToolbar`](basic_action_system.md) | Toolbar Group - Action Group ID
All Toolbar Groups - contained Action Group IDs
Target component - `ActionToolbar.setTargetComponent()` |
+| Type | Properties |
+|-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [`AnAction`](basic_action_system.md) | Action - [`AnAction`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnAction.java) implementation
Action ID - Action `id`
Action Plugin ID - contributing plugin
|
+| [`ActionToolbar`](basic_action_system.md) | Toolbar Group - Action Group ID
All Toolbar Groups - contained Action Group IDs
Target component - `ActionToolbar.setTargetComponent()`
|
### IDE and UI Components
-| Type | Properties |
-|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [`DialogWrapper`](dialog_wrapper.md) | dialogWrapperClass - [`DialogWrapper`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java) implementation |
-| [`ToolWindow`](tool_windows.md) | Tool Window ID - `id`
Tool Window Icon - `icon`
Tool Window Factory - [`ToolWindowFactory`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/wm/ToolWindowFactory.java) |
-| [`Tree`](lists_and_trees.md) | treeModelClass - `javax.swing.tree.TreeModel` implementation |
+| Type | Properties |
+|--------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [`DialogWrapper`](dialog_wrapper.md) | dialogWrapperClass - [`DialogWrapper`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapper.java) implementation |
+| [`ToolWindow`](tool_windows.md) | Tool Window ID - `id`
Tool Window Icon - `icon`
Tool Window Factory - [`ToolWindowFactory`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/wm/ToolWindowFactory.java)
|
+| [`Tree`](lists_and_trees.md) | treeModelClass - `javax.swing.tree.TreeModel` implementation |
## Inspecting Settings
@@ -74,12 +74,12 @@ Some additional properties are available when inspecting Settings _UI Inspector_ must be invoked only after opening the Settings dialog.
-| Settings page
Reference | Properties |
-|-----------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| _All settings_
[](settings_guide.md) | Configurable class - [`Configurable`](%gh-ic%/platform/ide-core/src/com/intellij/openapi/options/Configurable.java) class
Configurable ID - `id` attribute
Configurable weight - `groupWeight` attribute |
-| Editor | Color Scheme
[](syntax_highlighting_and_error_highlighting.md#textattributeskey) | Text Attributes Key - [`TextAttributesKey`](%gh-ic%/platform/core-api/src/com/intellij/openapi/editor/colors/TextAttributesKey.java) external name |
-| Editor | File Types
[](registering_file_type.md) | FileTypeID - `FileType.getName()`
FileType Class - [`FileType`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileTypes/FileType.java) implementation |
-| Editor | Inspections
[](code_inspections.md) | Inspection key - Inspection `id`
Inspection tool class - Inspection implementation |
-| Editor | Inlays
[](inlay_hints.md) | Inlay Group Key - [`InlayGroupSettingProvider.getGroup().key`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/settings/InlayGroupSettingProvider.kt)
Inlay Group Key - [`InlayGroup.key`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/InlayHintsProvider.kt)
Inlay Provider Model ID - [`InlayProviderSettingsModel.id`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/settings/InlayProviderSettingsModel.kt)
Inlay ImmediateConfigurable ID - [`ImmediateConfigurable.Case.id`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/InlayHintsProvider.kt) |
-| Editor | Intentions
[](code_intentions.md) | Intention Class - [`IntentionAction`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/intention/IntentionAction.java) class
Intention description directory - `` |
-| Plugins
[](plugin_configuration_file.md) | Plugin ID - Plugin ``
Plugin Dependencies - IDs of dependent plugins |
+| Settings page
Reference
| Properties |
+|--------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| _All settings_
[](settings_guide.md)
| Configurable class - [`Configurable`](%gh-ic%/platform/ide-core/src/com/intellij/openapi/options/Configurable.java) class
Configurable ID - `id` attribute
Configurable weight - `groupWeight` attribute
|
+| Editor | Color Scheme
[](syntax_highlighting_and_error_highlighting.md#textattributeskey)
| Text Attributes Key - [`TextAttributesKey`](%gh-ic%/platform/core-api/src/com/intellij/openapi/editor/colors/TextAttributesKey.java) external name
|
+| Editor | File Types
[](registering_file_type.md)
| FileTypeID - `FileType.getName()`
FileType Class - [`FileType`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileTypes/FileType.java) implementation
|
+| Editor | Inspections
[](code_inspections.md)
| Inspection key - Inspection `id`
Inspection tool class - Inspection implementation
|
+| Editor | Inlays
[](inlay_hints.md)
| Inlay Group Key - [`InlayGroupSettingProvider.getGroup().key`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/settings/InlayGroupSettingProvider.kt)
Inlay Group Key - [`InlayGroup.key`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/InlayHintsProvider.kt)
Inlay Provider Model ID - [`InlayProviderSettingsModel.id`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/settings/InlayProviderSettingsModel.kt)
Inlay ImmediateConfigurable ID - [`ImmediateConfigurable.Case.id`](%gh-ic%/platform/lang-api/src/com/intellij/codeInsight/hints/InlayHintsProvider.kt)
|
+| Editor | Intentions
[](code_intentions.md)
| Intention Class - [`IntentionAction`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/intention/IntentionAction.java) class
Intention description directory - ``
|
+| Plugins
[](plugin_configuration_file.md)
| Plugin ID - Plugin ``
Plugin Dependencies - IDs of dependent plugins
|
diff --git a/topics/basics/architectural_overview/documents.md b/topics/basics/architectural_overview/documents.md
index 86b917df3..4fc5e46c6 100644
--- a/topics/basics/architectural_overview/documents.md
+++ b/topics/basics/architectural_overview/documents.md
@@ -11,11 +11,11 @@ The IntelliJ Platform handles encoding and line break conversions when loading a
## How do I get a Document?
-| Context | API |
-|----------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [Action](basic_action_system.md) | [`AnActionEvent.getData(CommonDataKeys.EDITOR).getDocument()`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnActionEvent.java) |
-| [PSI File](psi_files.md) | [`PsiDocumentManager.getDocument()`/`getCachedDocument()`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiDocumentManager.java) |
-| [Virtual File](virtual_file.md) | [`FileDocumentManager.getDocument()`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileEditor/FileDocumentManager.java) (forces the document content to be loaded from a disk if it wasn't loaded previously)
[`FileDocumentManager.getCachedDocument()`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileEditor/FileDocumentManager.java) (use if only open or possibly modified documents are relevant) |
+| Context | API |
+|----------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [Action](basic_action_system.md) | [`AnActionEvent.getData(CommonDataKeys.EDITOR).getDocument()`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnActionEvent.java) |
+| [PSI File](psi_files.md) | [`PsiDocumentManager.getDocument()`/`getCachedDocument()`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiDocumentManager.java) |
+| [Virtual File](virtual_file.md) | [`FileDocumentManager.getDocument()`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileEditor/FileDocumentManager.java) (forces the document content to be loaded from a disk if it wasn't loaded previously)
[`FileDocumentManager.getCachedDocument()`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileEditor/FileDocumentManager.java) (use if only open or possibly modified documents are relevant)
|
## What can I do with a Document?
diff --git a/topics/basics/architectural_overview/psi_elements.md b/topics/basics/architectural_overview/psi_elements.md
index 032eb94f1..336fc52a1 100644
--- a/topics/basics/architectural_overview/psi_elements.md
+++ b/topics/basics/architectural_overview/psi_elements.md
@@ -15,11 +15,11 @@ The [`PsiElement`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiElement.jav
## How do I get a PSI element?
-| Context | API |
-|----------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [Action](basic_action_system.md) | [`AnActionEvent.getData(CommonDataKeys.PSI_ELEMENT)`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnActionEvent.java)
Note: If an editor is currently open and the element under caret is a [reference](psi_references.md), this will return the result of resolving the reference. |
-| [PSI File](psi_files.md) | [`PsiFile.findElementAt(offset)`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiFile.java) - This returns a leaf element at the specified offset, normally a lexer token. Use `PsiTreeUtil.getParentOfType()` to find the element of the exact type.
[`PsiRecursiveElementWalkingVisitor`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiRecursiveElementWalkingVisitor.java) |
-| [Reference](psi_references.md) | [`PsiReference.resolve()`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiReference.java) |
+| Context | API |
+|----------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [Action](basic_action_system.md) | [`AnActionEvent.getData(CommonDataKeys.PSI_ELEMENT)`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnActionEvent.java)
Note: If an editor is currently open and the element under caret is a [reference](psi_references.md), this will return the result of resolving the reference.
|
+| [PSI File](psi_files.md) | [`PsiFile.findElementAt(offset)`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiFile.java) - This returns a leaf element at the specified offset, normally a lexer token. Use `PsiTreeUtil.getParentOfType()` to find the element of the exact type.
[`PsiRecursiveElementWalkingVisitor`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiRecursiveElementWalkingVisitor.java)
|
+| [Reference](psi_references.md) | [`PsiReference.resolve()`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiReference.java) |
## What can I do with PSI elements?
diff --git a/topics/basics/architectural_overview/virtual_file.md b/topics/basics/architectural_overview/virtual_file.md
index ae8b919f4..11aa3986e 100644
--- a/topics/basics/architectural_overview/virtual_file.md
+++ b/topics/basics/architectural_overview/virtual_file.md
@@ -14,13 +14,13 @@ Contents of a `VirtualFile` are treated as a stream of bytes, but concepts like
## How do I get a virtual file?
-| Context | API |
-|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [Action](basic_action_system.md) | [`AnActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE)`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnActionEvent.java)
[`AnActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE_ARRAY)`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnActionEvent.java) for multiple selection |
-| [Document](documents.md) | [`FileDocumentManager.getFile()`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileEditor/FileDocumentManager.java) |
-| [PSI File](psi_files.md) | [`PsiFile.getVirtualFile()`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiFile.java) (may return `null` if the PSI file exists only in memory) |
-| File Name | [`FilenameIndex.getVirtualFilesByName()`](%gh-ic%/platform/indexing-api/src/com/intellij/psi/search/FilenameIndex.java) |
-| Local File System Path | [`LocalFileSystem.findFileByIoFile()`](%gh-ic%/platform/analysis-api/src/com/intellij/openapi/vfs/LocalFileSystem.java)
[`VirtualFileManager.findFileByNioPath()`/`refreshAndFindFileByNioPath()`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileManager.java) (2020.2+) |
+| Context | API |
+|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [Action](basic_action_system.md) | [`AnActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE)`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnActionEvent.java)
[`AnActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE_ARRAY)`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnActionEvent.java) for multiple selection
|
+| [Document](documents.md) | [`FileDocumentManager.getFile()`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileEditor/FileDocumentManager.java) |
+| [PSI File](psi_files.md) | [`PsiFile.getVirtualFile()`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiFile.java) (may return `null` if the PSI file exists only in memory) |
+| File Name | [`FilenameIndex.getVirtualFilesByName()`](%gh-ic%/platform/indexing-api/src/com/intellij/psi/search/FilenameIndex.java) |
+| Local File System Path | [`LocalFileSystem.findFileByIoFile()`](%gh-ic%/platform/analysis-api/src/com/intellij/openapi/vfs/LocalFileSystem.java)
[`VirtualFileManager.findFileByNioPath()`/`refreshAndFindFileByNioPath()`](%gh-ic%/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileManager.java) (2020.2+)
|
## What can I do with it?
diff --git a/topics/basics/basic_action_system.md b/topics/basics/basic_action_system.md
index 1aa6fc46b..50cd1573e 100644
--- a/topics/basics/basic_action_system.md
+++ b/topics/basics/basic_action_system.md
@@ -161,12 +161,12 @@ If the `compact` attribute is `true` for a menu group, an action in the menu onl
In contrast, if the `compact` attribute is `false`, an action in the menu appears if its state is disabled but visible.
Some menus like Tools have the `compact` attribute set, so there isn't a way to show an action on the Tools menu if it is not enabled.
-| Host Menu
`compact` Setting | Action Enabled | Visibility Enabled | Menu Item Visible? | Menu Item Appears Gray? |
-|:-------------------------------:|:--------------:|:------------------:|:------------------:|:-----------------------:|
-| T | **F** | T | **F** | N/A |
-| T | T | T | T | F |
-| F | **F** | T | **T** | **T** |
-| F | T | T | T | F |
+| Host Menu `compact` Setting | Action Enabled | Visibility Enabled | Menu Item Visible? | Menu Item Appears Gray? |
+|:--------------------------------:|:--------------:|:------------------:|:------------------:|:-----------------------:|
+| T | **F** | T | **F** | N/A |
+| T | T | T | T | F |
+| F | **F** | T | **T** | **T** |
+| F | T | T | T | F |
All other combinations of `compact`, visibility, and enablement produce N/A for gray appearance because the menu item isn't visible.
diff --git a/topics/basics/getting_started/plugin_compatibility.md b/topics/basics/getting_started/plugin_compatibility.md
index 522476977..4ef57e19b 100644
--- a/topics/basics/getting_started/plugin_compatibility.md
+++ b/topics/basics/getting_started/plugin_compatibility.md
@@ -78,12 +78,12 @@ This table is not exhaustive, to see a list of all modules, invoke code completi
| Module or Plugin for [``](plugin_configuration_file.md#idea-plugin__depends) Element | Functionality | Product Compatibility |
|-----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `com.intellij.modules.java` or `com.intellij.java`
See [](#java) below. | **Java** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | IntelliJ IDEA, Android Studio |
+| `com.intellij.modules.java` or `com.intellij.java`See [](#java) below.
| **Java** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | IntelliJ IDEA, Android Studio |
| `com.intellij.modules.androidstudio` | Android SDK Platform, Build Tools, Platform Tools, SDK Tools | Android Studio |
| `com.intellij.modules.cidr.lang` | **C, C++, Objective-C/C++** language PSI Model, Swift/Objective-C Interaction, Inspections, Intentions, Completion, Refactoring, Test Framework | AppCode, CLion |
| `com.intellij.modules.cidr.debugger` | Debugger Watches, Evaluations, Breakpoints, Inline Debugging | AppCode, CLion, RubyMine |
-| `com.intellij.modules.appcode` or `com.intellij.appcode`
See [](#appcodeclion) below. | Xcode Project Model, CocoaPods, Core Data Objects, Device & Simulator Support | AppCode |
-| `com.intellij.modules.clion` or `com.intellij.clion`
See [](#appcodeclion) below. | CMake, Profiler, Embedded Development, Remote Development, Remote Debug, Disassembly | CLion |
+| `com.intellij.modules.appcode` or `com.intellij.appcode`See [](#appcodeclion) below.
| Xcode Project Model, CocoaPods, Core Data Objects, Device & Simulator Support | AppCode |
+| `com.intellij.modules.clion` or `com.intellij.clion`See [](#appcodeclion) below.
| CMake, Profiler, Embedded Development, Remote Development, Remote Debug, Disassembly | CLion |
| `com.intellij.cidr.base` | Native Debugger Integration, Utility Classes, C/C++ Project Model/Workspace Support (OCWorkspace, CidrWorkspace, etc.), C/C++ Build and Run Support | AppCode, CLion |
| `com.intellij.database` | **Database Tools and SQL** language PSI Model, Inspections, Completion, Refactoring, Queries | DataGrip, IntelliJ IDEA Ultimate, AppCode, PhpStorm, PyCharm Professional, RubyMine, CLion, GoLand, Rider, and WebStorm if the Database Tools and SQL plugin is installed. |
| `org.jetbrains.plugins.go` | **Go** language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | GoLand |
diff --git a/topics/products/appcode/app_code.md b/topics/products/appcode/app_code.md
index 7c99b895f..bbc440a68 100644
--- a/topics/products/appcode/app_code.md
+++ b/topics/products/appcode/app_code.md
@@ -37,10 +37,10 @@ Instead, configure AppCode plugin projects to use the [`intellij.localPath`](too
The table below summarizes the [](tools_gradle_intellij_plugin.md) attributes to set in the plugin project's Gradle build script.
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
-| `gradle-intellij-plugin` Attribute | Attribute Value |
-|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [`intellij.localPath`](tools_gradle_intellij_plugin.md#intellij-extension-localpath) | Path to locally installed target version of AppCode. For example, for macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/AppCode/ch-0/193.5662.55/AppCode.app/Contents. |
-| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of AppCode. For example, for macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/AppCode/ch-0/193.5662.55/AppCode.app/Contents. |
+| `gradle-intellij-plugin` Attribute | Attribute Value |
+|--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [`intellij.localPath`](tools_gradle_intellij_plugin.md#intellij-extension-localpath) | Path to locally installed target version of AppCode. For example, for macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/AppCode/ch-0/193.5662.55/AppCode.app/Contents.
|
+| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of AppCode. For example, for macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/AppCode/ch-0/193.5662.55/AppCode.app/Contents.
|
The dependency on the AppCode APIs must be declared in the [plugin.xml](plugin_configuration_file.md) file.
As described in [Modules Specific to Functionality](plugin_compatibility.md#modules-specific-to-functionality) table, the [``](plugin_configuration_file.md#idea-plugin__depends) tags must declare `com.intellij.modules.appcode` module dependency, or `com.intellij.appcode` plugin dependency for plugins targeting only versions 2020.3+.
diff --git a/topics/products/datagrip/data_grip.md b/topics/products/datagrip/data_grip.md
index 2b78db9d7..457696d01 100644
--- a/topics/products/datagrip/data_grip.md
+++ b/topics/products/datagrip/data_grip.md
@@ -20,12 +20,12 @@ The table below summarizes the [](tools_gradle_intellij_plugin.md) attributes to
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
To see how these attributes appear in a similar Gradle build script for PhpStorm, see [](dev_alternate_products.md#configuring-gradle-build-script-using-the-intellij-idea-product-attribute).
-| `gradle-intellij-plugin` Attribute | Attribute Value |
-|----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for IntelliJ IDEA Ultimate.
(`IC` is incompatible with the required `DatabaseTools` plugin.) |
-| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | `2019.3` Set to the same version as the DataGrip target version, as set by `runIde.ideDir`. |
-| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | `DatabaseTools` Dependency on the bundled `DatabaseTools` plugin. |
-| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of DataGrip. For example, for macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/datagrip/ch-0/193.5233.139/DataGrip.app/Contents. |
+| `gradle-intellij-plugin` Attribute | Attribute Value |
+|----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for IntelliJ IDEA Ultimate.
_`IC` is incompatible with the required `DatabaseTools` plugin._
|
+| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | `2019.3` Set to the same version as the DataGrip target version, as set by `runIde.ideDir`. |
+| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | `DatabaseTools` Dependency on the bundled `DatabaseTools` plugin. |
+| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of DataGrip. For example, for macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/datagrip/ch-0/193.5233.139/DataGrip.app/Contents.
|
The dependency on the DataGrip APIs must be declared in the [plugin.xml](plugin_configuration_file.md) file.
As described in [Modules Specific to Functionality](plugin_compatibility.md#modules-specific-to-functionality) table, the [``](plugin_configuration_file.md#idea-plugin__depends) tags must declare `com.intellij.database`.
diff --git a/topics/products/goland/goland.md b/topics/products/goland/goland.md
index 2667ac237..7a5dcda07 100644
--- a/topics/products/goland/goland.md
+++ b/topics/products/goland/goland.md
@@ -66,12 +66,12 @@ To see how these attributes appear in a similar Gradle build script for PhpStorm
The Go plugin version is explicitly declared because it isn't bundled with IntelliJ IDEA Ultimate Edition.
Select a [version](https://plugins.jetbrains.com/plugin/9568-go/versions) of the Go plugin compatible with the IntelliJ Idea Ultimate version.
-| Gradle IntelliJ Plugin Attribute | Attribute Value |
-|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for IntelliJ IDEA Ultimate. The Go plugin isn't compatible with IntelliJ IDEA Community Edition. |
-| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | Set to the same `IU` BRANCH.BUILD as the GoLand target version, e.g. `193.5233.102`. |
-| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | `org.jetbrains.plugins.go:193.5233.102.83` for the Go plugin.
See below for Go plugin version information. |
-| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of GoLand. For example, on macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/Goland/ch-0/193.5233.112/GoLand.app/Contents. |
+| Gradle IntelliJ Plugin Attribute | Attribute Value |
+|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for IntelliJ IDEA Ultimate. The Go plugin isn't compatible with IntelliJ IDEA Community Edition. |
+| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | Set to the same `IU` BRANCH.BUILD as the GoLand target version, e.g. `193.5233.102`. |
+| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | `org.jetbrains.plugins.go:193.5233.102.83` for the Go plugin.
See below for Go plugin version information.
|
+| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of GoLand. For example, on macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/Goland/ch-0/193.5233.112/GoLand.app/Contents.
|
diff --git a/topics/products/idea/idea.md b/topics/products/idea/idea.md
index cdd5eea58..ade814df1 100644
--- a/topics/products/idea/idea.md
+++ b/topics/products/idea/idea.md
@@ -17,10 +17,10 @@ See [Choose your edition](https://www.jetbrains.com/idea/features/#choose-your-e
The configuration of IntelliJ IDEA plugin projects follows the methods described in [Configuring Plugin Projects using the IntelliJ IDEA Product Attribute](dev_alternate_products.md#configuring-plugin-projects-using-the-intellij-idea-product-attribute).
-| `gradle-intellij-plugin` Attribute | Attribute Value |
-|----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
-| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IC` for IntelliJ IDEA Community Edition (default)
`IU` for IntelliJ IDEA Ultimate |
-| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | IDE version, e.g. `2022.2` |
+| `gradle-intellij-plugin` Attribute | Attribute Value |
+|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|
+| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IC` for IntelliJ IDEA Community Edition (default)
`IU` for IntelliJ IDEA Ultimate
|
+| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | IDE version, e.g. `2022.2` |
## Available API
diff --git a/topics/products/phpstorm/phpstorm.md b/topics/products/phpstorm/phpstorm.md
index 8cfe9f613..9a26d1cc1 100644
--- a/topics/products/phpstorm/phpstorm.md
+++ b/topics/products/phpstorm/phpstorm.md
@@ -57,12 +57,12 @@ The table below summarizes the [](tools_gradle_intellij_plugin.md) attributes to
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
To see how these attributes appear in the Gradle build script for PhpStorm, see [](dev_alternate_products.md#configuring-gradle-build-script-using-the-intellij-idea-product-attribute).
-| `gradle-intellij-plugin` Attribute | Attribute Value |
-|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for IntelliJ IDEA Ultimate. The required PHP plugin isn't compatible with IntelliJ IDEA Community Edition. |
-| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | Set to the same `IU` BRANCH.BUILD as the PhpStorm target version, e.g. `193.5233.102`. |
-| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | `com.jetbrains.php:193.5233.102` for the PHP plugin.
See below for PHP plugin version information. |
-| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of PhpStorm. For example, on macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/PhpStorm/ch-0/193.5233.101/PhpStorm.app/Contents. |
+| `gradle-intellij-plugin` Attribute | Attribute Value |
+|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for IntelliJ IDEA Ultimate. The required PHP plugin isn't compatible with IntelliJ IDEA Community Edition. |
+| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | Set to the same `IU` BRANCH.BUILD as the PhpStorm target version, e.g. `193.5233.102`. |
+| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | `com.jetbrains.php:193.5233.102` for the PHP plugin.
See below for PHP plugin version information.
|
+| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of PhpStorm. For example, on macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/PhpStorm/ch-0/193.5233.101/PhpStorm.app/Contents.
|
The PHP plugin version is explicitly declared because it isn't bundled with IntelliJ IDEA Ultimate Edition.
Select a [version](https://plugins.jetbrains.com/plugin/6610-php/versions) of the PHP plugin compatible with the [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version).
diff --git a/topics/products/rubymine/rubymine.md b/topics/products/rubymine/rubymine.md
index 6af405854..9720bb450 100644
--- a/topics/products/rubymine/rubymine.md
+++ b/topics/products/rubymine/rubymine.md
@@ -21,12 +21,12 @@ The table below summarizes the [](tools_gradle_intellij_plugin.md) attributes to
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
To see how these attributes appear in a similar Gradle build script for PhpStorm, see [](dev_alternate_products.md#configuring-gradle-build-script-using-the-intellij-idea-product-attribute).
-| `gradle-intellij-plugin` Attribute | Attribute Value |
-|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for IntelliJ IDEA Ultimate. |
-| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | Set to the same `IU` BRANCH.BUILD as the RubyMine target version, e.g. `192.7142.36`. |
-| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | `org.jetbrains.plugins.ruby:2019.2.20191029` for the Ruby plugin.
See below for Ruby plugin version information. |
-| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of RubyMine. For example, on macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/RubyMine/ch-0/192.7142.37/RubyMine.app/Contents. |
+| `gradle-intellij-plugin` Attribute | Attribute Value |
+|----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for IntelliJ IDEA Ultimate. |
+| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | Set to the same `IU` BRANCH.BUILD as the RubyMine target version, e.g. `192.7142.36`. |
+| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | `org.jetbrains.plugins.ruby:2019.2.20191029` for the Ruby plugin.
See below for Ruby plugin version information.
|
+| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of RubyMine. For example, on macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/RubyMine/ch-0/192.7142.37/RubyMine.app/Contents.
|
The required `org.jetbrains.plugins.ruby` plugin isn't compatible with IntelliJ IDEA Community edition but is compatible with IntelliJ IDEA Ultimate (`IU`) edition.
Product compatibility is determined from the Ruby plugin [version page](https://plugins.jetbrains.com/plugin/1293-ruby/versions).
diff --git a/topics/products/webstorm/webstorm.md b/topics/products/webstorm/webstorm.md
index 0d3b719ab..2dceb9844 100644
--- a/topics/products/webstorm/webstorm.md
+++ b/topics/products/webstorm/webstorm.md
@@ -24,12 +24,12 @@ The table below summarizes the [](tools_gradle_intellij_plugin.md) attributes to
Click on an entry in the table's *Attribute* column to go to the documentation about that attribute.
To see how these attributes appear in a similar Gradle build script for PhpStorm, see [](dev_alternate_products.md#configuring-gradle-build-script-using-the-intellij-idea-product-attribute).
-| `gradle-intellij-plugin` Attribute | Attribute Value |
-|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for [](idea_ultimate.md). |
-| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | `192.7142.36` Set to the same BRANCH.BUILD as the WebStorm target version. |
-| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | Dependency on the `JavaScript` plugin. |
-| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of WebStorm. For example, for macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/WebStorm/ch-0/192.7142.35/WebStorm.app/Contents. |
+| `gradle-intellij-plugin` Attribute | Attribute Value |
+|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [`intellij.type`](tools_gradle_intellij_plugin.md#intellij-extension-type) | `IU` for [](idea_ultimate.md). |
+| [`intellij.version`](tools_gradle_intellij_plugin.md#intellij-extension-version) | `192.7142.36` Set to the same BRANCH.BUILD as the WebStorm target version. |
+| [`intellij.plugins`](tools_gradle_intellij_plugin.md#intellij-extension-plugins) | Dependency on the `JavaScript` plugin. |
+| [`runIde.ideDir`](tools_gradle_intellij_plugin.md#tasks-runide-idedir) | Path to locally installed target version of WebStorm. For example, for macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/WebStorm/ch-0/192.7142.35/WebStorm.app/Contents.
|
The dependency on the WebStorm APIs must be declared in the [plugin.xml](plugin_configuration_file.md) file.
As described in [Modules Specific to Functionality](plugin_compatibility.md#modules-specific-to-functionality) table, the [``](plugin_configuration_file.md#idea-plugin__depends) tags must declare `JavaScript`.
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 abdb88467..92fdd301a 100644
--- a/topics/reference_guide/custom_language_support/registering_file_type.md
+++ b/topics/reference_guide/custom_language_support/registering_file_type.md
@@ -26,12 +26,12 @@ Also, `name` and `language` must be declared matching `FileType.getName()` and I
To associate the file type in the IDE, specify one or more associations as listed in the following table.
-| Association type | Attribute | Attribute value |
-|-------------------------|---------------------------------------------|-----------------------------------------------------------------|
-| Filename extension(s) | `extensions` | Semicolon-separated list of extensions, without `.` prefix |
-| Hard coded file name(s) | `fileNames`/
`fileNamesCaseInsensitive` | Semicolon-separated list of exact (case-insensitive) file names |
-| Filename pattern(s) | `patterns` | Semicolon-separated list of patterns (`*` and `?`) |
-| Hashbang _(2020.2+)_ | `hashBangs` | Semicolon-separated list of hash bang patterns |
+| Association type | Attribute | Attribute value |
+|-------------------------|----------------------------------------------------|-----------------------------------------------------------------|
+| Filename extension(s) | `extensions` | Semicolon-separated list of extensions, without `.` prefix |
+| Hard coded file name(s) | `fileNames`/
`fileNamesCaseInsensitive`
| Semicolon-separated list of exact (case-insensitive) file names |
+| Filename pattern(s) | `patterns` | Semicolon-separated list of patterns (`*` and `?`) |
+| Hashbang _(2020.2+)_ | `hashBangs` | Semicolon-separated list of hash bang patterns |
diff --git a/topics/reference_guide/project_model/project.md b/topics/reference_guide/project_model/project.md
index 5cb7d63c9..2d0992a18 100644
--- a/topics/reference_guide/project_model/project.md
+++ b/topics/reference_guide/project_model/project.md
@@ -39,13 +39,13 @@ Basic API classes and interfaces for the concepts of [`Project`](%gh-ic%/platfor
A Project instance is available in multiple contexts:
-| Context | API |
-|----------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [Action](basic_action_system.md) | [`AnActionEvent.getProject()`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnActionEvent.java)
[`DataContext.getData(CommonDataKeys.PROJECT)`](%gh-ic%/platform/core-ui/src/openapi/actionSystem/DataContext.java) |
-| [Editor](editor_basics.md) | [`Editor.getProject()`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/editor/Editor.java) |
-| [Module](module.md) | [`Module.getProject()`](%gh-ic%/platform/core-api/src/com/intellij/openapi/module/Module.java) |
-| [PSI](psi.md) | [`PsiElement.getProject()`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiElement.java) |
-| [Tests](testing_plugins.md) | [`IdeaProjectTestFixture.getProject()`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/IdeaProjectTestFixture.java) |
+| Context | API |
+|----------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [Action](basic_action_system.md) | [`AnActionEvent.getProject()`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/actionSystem/AnActionEvent.java)
[`DataContext.getData(CommonDataKeys.PROJECT)`](%gh-ic%/platform/core-ui/src/openapi/actionSystem/DataContext.java)
|
+| [Editor](editor_basics.md) | [`Editor.getProject()`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/editor/Editor.java) |
+| [Module](module.md) | [`Module.getProject()`](%gh-ic%/platform/core-api/src/com/intellij/openapi/module/Module.java) |
+| [PSI](psi.md) | [`PsiElement.getProject()`](%gh-ic%/platform/core-api/src/com/intellij/psi/PsiElement.java) |
+| [Tests](testing_plugins.md) | [`IdeaProjectTestFixture.getProject()`](%gh-ic%/platform/testFramework/src/com/intellij/testFramework/fixtures/IdeaProjectTestFixture.java) |
It is also possible to retrieve projects in generic contexts:
* Project from [`VirtualFile`](virtual_file.md):
diff --git a/topics/reference_guide/settings_groups.md b/topics/reference_guide/settings_groups.md
index ddc5ecbe4..53444f67c 100644
--- a/topics/reference_guide/settings_groups.md
+++ b/topics/reference_guide/settings_groups.md
@@ -94,9 +94,9 @@ The other attributes are the same as discussed in [](settings_guide.md#settings-
For the child of a parent, the `id` attribute becomes compound:
-| Attribute | Required | Value |
-|:----------|:--------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `id` | Y | Compound FQN of implementation based on `com.intellij.openapi.options.Configurable` in the form: `XX.YY` where:
`XX` is the parent Settings component FQN-based id.
`YY` is unique to the child among other siblings. |
+| Attribute | Required | Value |
+|:----------|:--------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `id` | Y | Compound FQN of implementation based on `com.intellij.openapi.options.Configurable` in the form: `XX.YY` where:
- `XX` - the parent Settings component FQN-based ID
- `YY` - unique to the child among other siblings
|
> All children share the parent's `id` as the basis of their own `id`.
> All children have an `id` suffix that is unique among their siblings.
diff --git a/topics/reference_guide/settings_guide.md b/topics/reference_guide/settings_guide.md
index 64726a224..3ed45e27e 100644
--- a/topics/reference_guide/settings_guide.md
+++ b/topics/reference_guide/settings_guide.md
@@ -80,18 +80,18 @@ This section provides some additional clarification of those comments.
The attributes supported by `com.intellij.applicationConfigurable` EP and `com.intellij.projectConfigurable` EP are in the table below:
-| Attribute | Implementation
Basis | Required | Attribute
Value |
-|:-----------------------|:------------------------------------------|:--------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `instance` | `Configurable` | (1) | FQN of implementation. See [](#the-configurable-interface) for more information. |
-| `provider` | `ConfigurableProvider` | (1) | FQN of implementation. See [](#the-configurableprovider-class) for more information. |
-| `nonDefaultProject` | `Configurable` | Y | Applicable _only_ to the `com.intellij.projectConfigurable` (project Settings) EP.
`true` = show Settings for all projects _except_ the [default project](https://www.jetbrains.com/help/idea/configure-project-settings.html#new-default-settings).
`false` = show Settings for all projects. |
-| `displayName` | `Configurable`
`ConfigurableProvider` | (2) | The non-localized Settings name visible to users, which is needed for the Settings dialog left-side menu.
For a _localized_ visible name omit `displayName` and use the `key` and `bundle` attributes. |
-| `key` and
`bundle` | `Configurable`
`ConfigurableProvider` | (2) | The [localization](localization_guide.md) key and bundle for the Settings name visible to users.
For non-localized visible names omit `key` and `bundle` and use `displayName`. |
-| `id` | `Configurable`
`ConfigurableProvider` | Y | The unique, FQN identifier for this implementation.
The FQN should be based on the plugin `id` to ensure uniqueness. |
-| `parentId` | `Configurable`
`ConfigurableProvider` | Y | This attribute is used to create a hierarchy of Settings. This component is declared one of the specified `parentId` component's children. Typically used for placing a Settings panel within the Settings Dialog menu. Acceptable values for `parentId` are given in [](#values-for-parent-id-attribute).
`groupId` is deprecated.(3) |
-| `groupWeight` | `Configurable`
`ConfigurableProvider` | N | Specifies the weight (stacking order) of this component within the group of a parent configurable component. The default weight is 0, meaning lowest in the order.
If one child in a group or a parent component has non-zero weight, all children will be sorted descending by their weight. If the weights are equal, the components will be sorted ascending by their display name. |
-| `dynamic` | `Configurable.Composite` | N | This component's children are dynamically calculated by calling the `getConfigurables()` method.
Not recommended because it requires loading additional classes while building a Settings tree. If possible, use XML attributes instead. |
-| `childrenEPName` | `Configurable` | N | Specifies the FQN name of the Extension Point that will be used to calculate the children of this component. |
+| Attribute | Implementation
Basis
| Required | Attribute
Value
|
+|:--------------------|:---------------------------------------------------|:--------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `instance` | `Configurable` | (1) | FQN of implementation. See [](#the-configurable-interface) for more information. |
+| `provider` | `ConfigurableProvider` | (1) | FQN of implementation. See [](#the-configurableprovider-class) for more information. |
+| `nonDefaultProject` | `Configurable` | Y | Applicable _only_ to the `com.intellij.projectConfigurable` (project Settings) EP.
`true` = show Settings for all projects _except_ the [default project](https://www.jetbrains.com/help/idea/configure-project-settings.html#new-default-settings).
`false` = show Settings for all projects.
|
+| `displayName` | `Configurable`
`ConfigurableProvider`
| (2) | The non-localized Settings name visible to users, which is needed for the Settings dialog left-side menu.
For a _localized_ visible name omit `displayName` and use the `key` and `bundle` attributes.
|
+| `key` and `bundle` | `Configurable`
`ConfigurableProvider`
| (2) | The [localization](localization_guide.md) key and bundle for the Settings name visible to users.
For non-localized visible names omit `key` and `bundle` and use `displayName`.
|
+| `id` | `Configurable`
`ConfigurableProvider`
| Y | The unique, FQN identifier for this implementation.
The FQN should be based on the plugin `id` to ensure uniqueness.
|
+| `parentId` | `Configurable`
`ConfigurableProvider`
| Y | This attribute is used to create a hierarchy of Settings. This component is declared one of the specified `parentId` component's children. Typically used for placing a Settings panel within the Settings Dialog menu. Acceptable values for `parentId` are given in [](#values-for-parent-id-attribute).
`groupId` is deprecated.(3)
|
+| `groupWeight` | `Configurable`
`ConfigurableProvider`
| N | Specifies the weight (stacking order) of this component within the group of a parent configurable component. The default weight is 0, meaning lowest in the order.
If one child in a group or a parent component has non-zero weight, all children will be sorted descending by their weight. If the weights are equal, the components will be sorted ascending by their display name.
|
+| `dynamic` | `Configurable.Composite` | N | This component's children are dynamically calculated by calling the `getConfigurables()` method.
Not recommended because it requires loading additional classes while building a Settings tree. If possible, use XML attributes instead.
|
+| `childrenEPName` | `Configurable` | N | Specifies the FQN name of the Extension Point that will be used to calculate the children of this component. |
**Attribute Notes:**
1) Either `instance` or `provider` must be specified depending on the implementation.
diff --git a/topics/reference_guide/themes_metadata.md b/topics/reference_guide/themes_metadata.md
index debcce758..4cfc0efaa 100644
--- a/topics/reference_guide/themes_metadata.md
+++ b/topics/reference_guide/themes_metadata.md
@@ -77,23 +77,23 @@ All keys must follow this Naming Pattern:
#### Property
-| Word | Use for | Example |
-|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|
-| **`foreground`** | Text color. | `Label.foreground` |
-| **`background`** | Background color for objects with text. | `Label.background` |
-| **`Color`** | Objects with a single color (do not have foreground/background). Do not use the word "Color" separately, always use with the "part" word.
_The word "Color" shows that this is a color property. Otherwise, it can be confused with a property of another type._ | `Popup.borderColor`
`Group.separatorColor` |
+| Word | Use for | Example |
+|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
+| **`foreground`** | Text color. | `Label.foreground` |
+| **`background`** | Background color for objects with text. | `Label.background` |
+| **`Color`** | Objects with a single color (do not have foreground/background). Do not use the word "Color" separately, always use with the "part" word.
_The word "Color" shows that this is a color property. Otherwise, it can be confused with a property of another type._
| `Popup.borderColor`
`Group.separatorColor`
|
#### State
-| Word | Use for | Example |
-|-----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
-| ~~**`Active`**~~ | Enabled components, default state. Omit this word. The default state does not need explicit naming. | `Notification.background` |
-| **`Inactive`** | Enabled components that might be perceived as interactive but are actually not. Example: a tree with visible selection but not in focus. Goes after other state words. | `Tree.inactiveBackground`
`ToolWindow.HeaderTab.hoverInactiveBackground` |
-| **`Focused`** | The current focused component. | `Button.focusedBorderColor` |
-| **`Selected`** | A selected tab or any other control that has equally meaningful selected and inactive states. | `ToolWindow.HeaderTab.selectedBackground` |
-| **`Hover`**
**`Pressed`** | An action as indicated in states. | `Link.hoverForeground`
`Link.pressedForeground` |
-| **`Error`**
**`Warning`**
**`Success`** | Validation states. [See example](https://jetbrains.design/intellij/principles/validation_errors/) in the guide article. | `ValidationTooltip.errorBackground`
`ValidationTooltip.warningBorderColor` |
-| **`Disabled`** | Unavailable components. | `Label.disabledForeground` |
+| Word | Use for | Example |
+|------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
+| ~~**`Active`**~~ | Enabled components, default state. Omit this word. The default state does not need explicit naming. | `Notification.background` |
+| **`Inactive`** | Enabled components that might be perceived as interactive but are actually not. Example: a tree with visible selection but not in focus. Goes after other state words. | `Tree.inactiveBackground`
`ToolWindow.HeaderTab.hoverInactiveBackground`
|
+| **`Focused`** | The current focused component. | `Button.focusedBorderColor` |
+| **`Selected`** | A selected tab or any other control that has equally meaningful selected and inactive states. | `ToolWindow.HeaderTab.selectedBackground` |
+| **`Hover`**
**`Pressed`**
| An action as indicated in states. | `Link.hoverForeground`
`Link.pressedForeground`
|
+| **`Error`**
**`Warning`**
**`Success`**
| Validation states. [See example](https://jetbrains.design/intellij/principles/validation_errors/) in the guide article. | `ValidationTooltip.errorBackground`
`ValidationTooltip.warningBorderColor`
|
+| **`Disabled`** | Unavailable components. | `Label.disabledForeground` |
#### Part
@@ -103,18 +103,18 @@ Create a separate key for a part if its properties differ from the parent object
If a part is common among several components, use the same name for it.
Notable examples of common parts:
-| Common parts | Use for | Example |
-|----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|
-| **`Accelerator`**
**`Shortcut`** | Shortcut foreground. | `Menu.acceleratorForeground`
`Editor.shortcutForeground` |
-| **`Border`** | A line around a component. | `NavBar.borderColor` |
-| **`Caret`** | The vertical line that denotes typing place. | `TextField.caretForeground` |
-| **`ModifiedItem`** | An object that has been modified but not yet saved.
_Example: change anything in the Settings dialog, the setting group name in the tree becomes blue._ | `Tree.modifiedItemForeground` |
-| **`Focus`** | Wide focus border around a component. | `Component.focusColor`
_"Component" is a special key that sets common properties for several basic input components._ |
-| **`Info`** | Secondary labels with additional useful information. Usually appear in gray color to the right or below a regular label. | `CompletionPopup.infoForeground` |
-| **`Icon`** | An icon that is created with a source code (not an image file). | `Table.sortIconColor` |
-| **`Selection`** | The focus place in a component with selectable text. Can be in a typed text or in a list or tree.
Goes before other state words (for historical reasons). | `TextField.selectionForeground`
`Tree.selectionInactiveBackground` |
-| **`Separator`** | A horizontal or vertical line inside a component. Can be with a label. | `Menu.separatorColor` |
-| **`Shadow`** | A shadow below a component. | `Button.shadowColor` |
+| Common parts | Use for | Example |
+|-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|
+| **`Accelerator`**
**`Shortcut`**
| Shortcut foreground. | `Menu.acceleratorForeground`
`Editor.shortcutForeground`
|
+| **`Border`** | A line around a component. | `NavBar.borderColor` |
+| **`Caret`** | The vertical line that denotes typing place. | `TextField.caretForeground` |
+| **`ModifiedItem`** | An object that has been modified but not yet saved.
_Example: change anything in the Settings dialog, the setting group name in the tree becomes blue._
| `Tree.modifiedItemForeground` |
+| **`Focus`** | Wide focus border around a component. | `Component.focusColor`
_"Component" is a special key that sets common properties for several basic input components._
|
+| **`Info`** | Secondary labels with additional useful information. Usually appear in gray color to the right or below a regular label. | `CompletionPopup.infoForeground` |
+| **`Icon`** | An icon that is created with a source code (not an image file). | `Table.sortIconColor` |
+| **`Selection`** | The focus place in a component with selectable text. Can be in a typed text or in a list or tree.
Goes before other state words (for historical reasons).
| `TextField.selectionForeground`
`Tree.selectionInactiveBackground`
|
+| **`Separator`** | A horizontal or vertical line inside a component. Can be with a label. | `Menu.separatorColor` |
+| **`Shadow`** | A shadow below a component. | `Button.shadowColor` |
#### SubObject
diff --git a/topics/user_interface_components/popups.md b/topics/user_interface_components/popups.md
index 698f10681..ec6813426 100644
--- a/topics/user_interface_components/popups.md
+++ b/topics/user_interface_components/popups.md
@@ -12,12 +12,12 @@ Popups can optionally display a title, are optionally movable and resizable (and
The [`JBPopupFactory`](%gh-ic%/platform/platform-api/src/com/intellij/openapi/ui/popup/JBPopupFactory.java) interface allows you to create popups that display different kinds of components, depending on your specific needs.
The most commonly used methods are:
-| Method | Description |
-|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `createComponentPopupBuilder()` | Generic, allows showing any [Swing](https://docs.oracle.com/javase/tutorial/uiswing/start/index.html) component.
**Example**: [`IntentionPreviewPopupUpdateProcessor`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/preview/IntentionPreviewPopupUpdateProcessor.kt) creating a popup rendering the intention preview. |
-| `createPopupChooserBuilder()` | For choosing one or more items from a plain `java.util.List`.
**Example**: [`ShowMessageHistoryAction`](%gh-ic%/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/ShowMessageHistoryAction.kt) creating a popup with recent commit messages history in the commit message text area. |
-| `createConfirmation()` | For choosing between two options, and performing different actions depending on which option is selected.
**Example**: [`VariableInplaceRenamer`](%gh-ic%/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/VariableInplaceRenamer.java) creating confirmation popup after invalid variable name is provided in the inplace rename action. |
-| `createActionGroupPopup()` | Show actions from an [Action Group](grouping_action.md) and executes the action selected by the user.
**Example**: [`ShowRecentFindUsagesGroup`](%gh-ic%/platform/lang-impl/src/com/intellij/find/impl/ShowRecentFindUsagesGroup.java) invoked via Edit / Find Usages / Recent Find Usages and showing recent find usages group popup. |
+| Method | Description |
+|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `createComponentPopupBuilder()` | Generic, allows showing any [Swing](https://docs.oracle.com/javase/tutorial/uiswing/start/index.html) component.
**Example**: [`IntentionPreviewPopupUpdateProcessor`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/preview/IntentionPreviewPopupUpdateProcessor.kt) creating a popup rendering the intention preview.
|
+| `createPopupChooserBuilder()` | For choosing one or more items from a plain `java.util.List`.
**Example**: [`ShowMessageHistoryAction`](%gh-ic%/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/ShowMessageHistoryAction.kt) creating a popup with recent commit messages history in the commit message text area.
|
+| `createConfirmation()` | For choosing between two options, and performing different actions depending on which option is selected.
**Example**: [`VariableInplaceRenamer`](%gh-ic%/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/VariableInplaceRenamer.java) creating confirmation popup after invalid variable name is provided in the inplace rename action.
|
+| `createActionGroupPopup()` | Show actions from an [Action Group](grouping_action.md) and executes the action selected by the user.
**Example**: [`ShowRecentFindUsagesGroup`](%gh-ic%/platform/lang-impl/src/com/intellij/find/impl/ShowRecentFindUsagesGroup.java) invoked via Edit / Find Usages / Recent Find Usages and showing recent find usages group popup.
|
### Action Groups