IntelliJ Platform Plugin SDK Help

Internal Actions – UI Inspector

The UI Inspector is a tool to interrogate elements of the IDE's UI to get an internal description of each element.

Enabling the UI Inspector

Before using the UI Inspector, it must be enabled by selecting the menu item Tools | Internal Actions | UI | UI Inspector. The enabled state of the UI Inspector is modal; it remains enabled until it is disabled by selecting the menu item again.

Using the UI Inspector

Centering the cursor on a UI element and pressing Ctrl+Alt (Ctrl+Option on macOS) when clicking the left mouse button reveals the properties of the Swing component.

For example, to get information about the Build Project button's "hammer" icon on the toolbar (highlighted in green), put the mouse cursor on the icon and press Ctrl/Cmd+Alt while clicking the mouse.

The UI Inspector displays the icon details:

Internal Icon Info

added-at Property

Sometimes, inspecting complex component's properties is not enough to understand how the component was created and configured. UI Inspector gives the possibility of finding the code where the selected component was added, which makes it much easier to understand which APIs can be used to build custom components with similar complexity.

To find the place were component was added, select the added-at property to show the stacktrace:

added-at stack trace

Specific Component Properties

Various components used in the IntelliJ Platform expose additional properties. These can be useful to locate the underlying implementation, related Action, etc.

Custom Swing components can also provide additional properties via UiInspectorContextProvider or its dedicated subclasses (2020.1 and later).

Editor

Type

Properties

ActiveGutterRenderer
(2023.1+)

Clicked Renderer (Class) - ActiveGutterRenderer instance/class

GutterIconRenderer
(2023.1+)

Clicked Renderer (Class) - GutterIconRenderer instance/class

Accessible Name - GutterIconRenderer.getAccessibleName()

Icon - GutterIconRenderer.getIcon()

Marker Info - Element / Navigation Handler - LineMarkerInfo.getElement() / getNavigationHandler()

GutterMark

gutter renderer - GutterMark implementation

Inlay
(2023.1+)

Inlay Renderer (Class) - Inlay.getRenderer() instance/class

Inlay Gutter Renderer - Inlay.getGutterIconRenderer()

Inlay Properties - Inlay.getProperties()

IntentionAction/QuickFix

intention action/quick fix - IntentionAction/QuickFix implementation

Action

Type

Properties

AnAction

Action - AnAction implementation

Action ID - Action id

Action Plugin ID - contributing plugin

ActionToolbar

Toolbar Group - Action Group ID

All Toolbar Groups - contained Action Group IDs

Target component - ActionToolbar.setTargetComponent()

IDE and UI Components

Type

Properties

DialogWrapper

dialogWrapperClass - DialogWrapper implementation

ToolWindow

Tool Window ID - id

Tool Window Icon - icon

Tool Window Factory - ToolWindowFactory

Tree

treeModelClass - javax.swing.tree.TreeModel implementation

Inspecting Settings

Enable View | Appearance | Details in Tree View in Internal Mode to show Settings page id in the tree.

Some additional properties are available when inspecting Settings dialog (2023.1+).

Settings page

Reference

Properties

All settings

Settings Guide

Configurable class - Configurable class

Configurable ID - id attribute

Configurable weight - groupWeight attribute

Editor | Color Scheme

Text Attributes Key

Text Attributes Key - TextAttributesKey external name

Editor | File Types

Registering a File Type

FileTypeID - FileType.getName()

FileType Class - FileType implementation

Editor | Inspections

Code Inspections

Inspection key - Inspection id

Inspection tool class - Inspection implementation

Editor | Inlays

Inlay Hints

Inlay Group Key - InlayGroupSettingProvider.getGroup().key

Inlay Group Key - InlayGroup.key

Inlay Provider Model ID - InlayProviderSettingsModel.id

Inlay ImmediateConfigurable ID - ImmediateConfigurable.Case.id

Editor | Intentions

Intentions

Intention Class - IntentionAction class

Intention description directory - <descriptionDirectoryName>

Plugins

Plugin Configuration File

Plugin ID - Plugin <id>

Plugin Dependencies - IDs of dependent plugins

Last modified: 12 June 2024