IntelliJ Platform Plugin SDK Help

Notable Changes in IntelliJ Platform and Plugins API 2021.*

Early Access Program (EAP) releases of upcoming versions are available here.


IntelliJ Platform 2021.3

External code formatter tools API

Allows integration of standalone tools like shfmt: External Code Formatter.

Simplified API for CustomComponentAction

Use new method CustomComponentAction.updateCustomComponent(Component, Presentation) to synchronize given Presentation and component state.

Highlighting API exposes priority range

Use getPriorityRange() in AnnotationSession/LocalInspectionToolSession to optimize highlighting for coarse-grained files (e.g., PsiPlainTextFile files with single node).


IntelliJ Platform 2021.2

Unit test mode: non-production IconManager

Now com.intellij.ui.IconManager.createDeferredIcon() doesn't use iconProducer which might result in "wrong" composite icons and failed assertions. Override UsefulTestCase.isIconRequired() returning true to restore production icons. Alternatively, invoke Registry.get("psi.deferIconLoading").setValue(false) in setUp() and Registry.get("psi.deferIconLoading").resetToDefault() in tearDown().

Constructor Injection disabled for Extensions

Please obtain necessary components only when needed (logged as ERROR now).

Language Injection

Use LanguageInjectionContributor (com.intellij.languageInjectionContributor EP) and LanguageInjectionPerformer (com.intellij.languageInjectionPerformer EP) to customize language injection.

IntelliJ IDEA 2021.2

Unbundled plugins

Several plugins (Arquillian, AspectJ, CoffeeScript, Debugger Support for JSP (JSR45), Drools, Guice, Helidon, Java EE: Enterprise Java Beans (EJB), Spring OSGi, Spring Web Flow) have been unbundled. The IDE will suggest installation if the project contains related framework dependency. If your plugin depends on them, users will need to install them from the JetBrains Marketplace.


IntelliJ Platform 2021.1

Add unambiguous imports on the fly for custom languages

Override ReferenceImporter#isAddUnambiguousImportsOnTheFlyEnabled() 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 and register in com.intellij.fileEncodingProvider extension point.

JCEF: wrapper for CefBrowser

JBCefOsrHandlerBrowser forwards to custom CefRenderHandler, e.g., for off-screen rendering.

Java Plugin 2021.1

Testframework: JUnit4 variant for LightJavaCodeInsightFixtureTestCase

Use LightJavaCodeInsightFixtureTestCase4.

Last modified: 11 January 2023