IntelliJ Platform SDK DevGuide

Edit page

Notable Changes in IntelliJ Platform and Plugins API 2019.*

2019.3

Notable Changes in IntelliJ Platform 2019.3

PlatformTestCase renamed to HeavyPlatformTestCase
Now reflects its “heavy test” characteristics (see Light and Heavy Tests).

Notable Changes in IntelliJ IDEA

Unbundled plugins
Several plugins (Heroku integration, RubyMotion support, Java Applets Support) for no longer actively maintained technology have been moved to a separate repository. If your plugin depends on them, users will need to install them from the JetBrains plugin repository.

2019.2

Notable Changes in IntelliJ Platform 2019.2

Quickfixes for file-level notifications
Consistent with other quickfixes, the menu now shows names of fixes, not names of problems themselves. Issue
Create HTML representation of code
Use com.intellij.openapi.editor.richcopy.HtmlSyntaxInfoUtil to create Lexer-based highlighted code samples, e.g. for usage in documentation.
View | Appearance | Description in Tree Views
Toggles showing additional details in UI (e.g. modification timestamp in Project View) see UISettings#getShowInplaceComments.
New API for Editor Inlay Hints
Allows a variety of presentations (incl. custom painting), mouse event handling and exposing settings in Editor | Inlay Hints. See com.intellij.codeInsight.hints.InlayHintsProvider.
com.intellij.openapi.vfs.AsyncFileListener
A non-blocking variant for com.intellij.openapi.vfs.newvfs.BulkFileListener.
com.intellij.openapi.util.ColoredItem
Provides background color in all Trees, Lists and ComboBoxes.
com.intellij.openapi.startup.StartupActivity background variant
Use new dedicated extension point com.intellij.backgroundPostStartupActivity (see Javadoc for StartupActivity#BACKGROUND_POST_STARTUP_ACTIVITY).
com.intellij.codeHighlighting.TextEditorHighlightingPassFactory registration
Use new dedicated extension point com.intellij.highlightingPassFactory.
com.intellij.openapi.fileTypes.FileTypeFactory deprecated
When registering file type via file extension, pattern or exact file name matching, use extension point com.intellij.fileType instead (see Sample).
@org.jetbrains.annotations.ApiStatus.NonExtendable
Indicates that the annotated API class, interface or method must not be extended, implemented or overridden by external plugins but can be only obtained or instantiated (for classes and interfaces), or called (for methods).
@org.jetbrains.annotations.ApiStatus.OverrideOnly
Indicates that the annotated method is part of SPI (Service Provider Interface), which is intended to be only implemented or overridden but never called by external plugins.
com.intellij.util.Query.forEach
Defaults to thread-safe to prevent problems with clients using unsynchronized collections.
com.intellij.openapi.projectRoots.SdkType#getInvalidHomeMessage
Returns dedicated message when invalid SDK path was chosen (e.g., JRE instead of JDK).

Notable Changes in IntelliJ IDEA

Java functionality extracted as plugin
If your plugin depends on Java, it must be specified now, please see blog post for details.
Unbundled plugins
Several plugins (J2ME, JsTestDriver, Struts 1.x) for no longer actively maintained technology have been moved to a separate repository. If your plugin depends on them, users will need to install them from the JetBrains plugin repository.

2019.1

Notable Changes in IntelliJ Platform 2019.1

com.intellij.testFramework.InspectionTestCase changed to light test
Use dedicated ProjectDescriptor or rollback project setup changes in tearDown() (see Light and Heavy Tests).
@org.jetbrains.annotations.ApiStatus.AvailableSince
External annotations for IntelliJ Platform are generated and attached to plugin projects automatically (replacing @since Javadoc).
@org.jetbrains.annotations.ApiStatus.ScheduledForRemoval
External annotations for IntelliJ Platform are generated and attached to plugin projects automatically. This allows highlighting of API which has been removed in newer platform versions.
@org.jetbrains.annotations.ApiStatus.Internal
Indicates that the annotated element must not be considered as a public API. Do not use outside of IntelliJ Platform. Issue
PsiReferenceProvider assert underlying element
Assert references are created for the given underlying PsiElement. Issue
CachedValue more strict assertions
Enabled in tests and EAP/internal mode, see CachedValueStabilityChecker Javadoc.
Last modified: 14 October 2019