Notable Changes in IntelliJ Platform and Plugins API 2019.*
Edit pageLast modified: 22 April 20242019.3
IntelliJ Platform 2019.3
PlatformTestCase
renamed toHeavyPlatformTestCase
Now reflects its "heavy test" characteristics (see Light and Heavy Tests).
- Support for transitive optional plugin dependencies
Optional plugin.xml configuration files can now specify
<depends>
. Issue- Theme/Keymap plugins do not require restart
(Un)Installing or enabling/disabling Theme or Keymap plugins doesn't require an IDE restart anymore.
- Run task once (per project)
Use
com.intellij.ide.util.RunOnceUtil
to run a task exactly once for application or per project.
IntelliJ IDEA 2019.3
- 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 Marketplace.
2019.2
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 | Details 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 Settings | 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.startup.StartupActivity
background variantUse new dedicated
com.intellij.backgroundPostStartupActivity
extension point (see Javadoc forStartupActivity#BACKGROUND_POST_STARTUP_ACTIVITY
).com.intellij.codeHighlighting.TextEditorHighlightingPassFactory
registrationUse new dedicated
com.intellij.highlightingPassFactory
extension point.com.intellij.openapi.fileTypes.FileTypeFactory
deprecatedWhen registering a file type via file extension, pattern or exact file name matching, use
com.intellij.fileType
extension point instead (see Sample).@org.jetbrains.annotations.ApiStatus.NonExtendable
Indicates that the annotated API class, interface, or method must not get extended, implemented, or overridden by external plugins but can only be obtained or instantiated for classes and interfaces, or called for methods.
@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.
IntelliJ IDEA 2019.2
- Java functionality extracted as a plugin
If your plugin depends on Java, it must be specified now; see Java 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 Marketplace.
2019.1
IntelliJ Platform 2019.1
com.intellij.testFramework.InspectionTestCase
changed to light testUse dedicated
ProjectDescriptor
or rollback project setup changes intearDown()
(see Light and Heavy Tests).@org.jetbrains.annotations.ApiStatus.AvailableSince
External annotations for the IntelliJ Platform are generated and attached to plugin projects automatically (replacing
@since
Javadoc).@org.jetbrains.annotations.ApiStatus.ScheduledForRemoval
External annotations for the 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 the IntelliJ Platform, see Internal API Migration.
PsiReferenceProvider
assert underlying elementAssert references are created for the given underlying
PsiElement
. IssueCachedValue
more strict assertionsEnabled in tests and EAP/internal mode, see
CachedValueStabilityChecker
Javadoc.
Thanks for your feedback!