IntelliJ Platform Plugin SDK Help

Incompatible Changes in IntelliJ Platform and Plugins API 2021.*

Please see Verifying Plugin Compatibility on how to use Plugin Verifier and IDE inspections to check such problems.

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

2021.3

IntelliJ Platform 2021.3

Running tests fails with jarFiles is not set for [...] or Created extension classloader is not equal to plugin's one

Set system property idea.force.use.core.classloader to true.

Running tests fails using Gradle setup

Please use workarounds.

com.intellij.ui.mac.MacMessages.showMessageDialog(String, String, String[], boolean, Window, int, int, DialogWrapper.DoNotAskOption) method removed

Use com.intellij.ui.mac.MacMessages.showMessageDialog(String, String, String[], boolean, Window, int, int, DoNotAskOption) instead.

com.intellij.openapi.ui.MessageDialogBuilder.doNotAsk(DialogWrapper.DoNotAskOption) method removed

Use com.intellij.openapi.ui.MessageDialogBuilder.doNotAsk(DoNotAskOption) instead.

com.intellij.ide.util.projectWizard.WizardContext.getWizard() method removed

Use com.intellij.ide.util.projectWizard.WizardContext.getUserData(AbstractWizard.KEY) instead.

com.intellij.openapi.ui.TextComponentAccessor.TEXT_FIELD_WITH_HISTORY_WHOLE_TEXT field removed

Use com.intellij.openapi.ui.TextComponentAccessors.TEXT_FIELD_WITH_HISTORY_WHOLE_TEXT instead.

com.intellij.execution.process.ColoredOutputTypeRegistry.getAnsiColorKey(int) method removed

Use com.intellij.execution.process.ColoredOutputTypeRegistryImpl.getAnsiColorKey(int) instead.

com.intellij.diagnostic.PerformanceWatcher.Snapshot class now interface

Recompile the dependant code or use com.intellij.diagnostic.PerformanceWatcherImpl.SnapshotImpl instead.

com.intellij.openapi.fileEditor.impl.EditorTabPresentationUtil.getEditorTabTitle(Project, VirtualFile, EditorWindow) method parameter EditorWindow removed

This parameter was never needed, but led to code coupling.

com.intellij.openapi.fileEditor.impl.EditorTabPresentationUtil.getUniqueEditorTabTitle(Project, VirtualFile, EditorWindow) method parameter EditorWindow removed

This parameter was never needed, but led to code coupling.

com.intellij.openapi.fileEditor.impl.EditorTabTitleProvider.getEditorTabTitle(Project, VirtualFile, EditorWindow) method parameter EditorWindow removed

This parameter was never needed, but led to code coupling.

Constructor com.intellij.codeInsight.hints.settings.InlayProviderSettingsModel changed

Added Language parameter.

com.intellij.codeInsight.hints.settings.InlayProviderSettingsModel.getDescription() abstract method added

Provides short description.

com.intellij.codeInsight.hints.settings.InlayProviderSettingsModel.getCaseDescription(ImmediateConfigurable.Case) abstract method added

Provides description text for given case.

com.intellij.codeInsight.hints.settings.InlayProviderSettingsModel.getCasePreview(ImmediateConfigurable.Case) abstract method added

Provides preview text for given case.

com.intellij.openapi.wm.ToolWindow.getEmptyText() method removed

Please safe-cast and use com.intellij.openapi.wm.ex.ToolWindowEx.getEmptyText().

com.intellij.openapi.actionSystem.ex.CustomComponentAction#createCustomComponent(Presentation, String, DataContext) method removed

Please use createCustomComponent(Presentation, String), one shall not depend on dataContext there.

com.intellij.ui.EditorTextField.addNotify() method marked final

Please use addSettingsProvider(EditorSettingsProvider) to configure Editor as editor creation may be postponed now.

VCS Log 2021.3

com.intellij.vcs.log.ui.frame.CommitPanel class removed

Removed unnecessary inheritance.

Git Plugin 2021.3

git4idea.ui.branch.GitBranchActionsUtilKt.checkoutOrReset(Project, List, String, GitNewBranchOptions) method removed

Method was dropped to avoid supporting outdated behavior.

git4idea.ui.branch.GitBranchActionsUtilKt.createNewBranch(Project, List, String, GitNewBranchOptions) method removed

Method was dropped to avoid supporting outdated behavior.

Python Plugin 2021.3

com.jetbrains.python.console.PydevConsoleRunnerImpl(Project, Sdk, PyConsoleType, String, Map<String, String>, PyConsoleOptions.PyConsoleSettings, Consumer<? super String>, String[]) constructor parameter type com.intellij.util.Consumer<? super String> removed

There is no need to pass a Restart action as a constructor parameter, it should be created inside the com.jetbrains.python.console.PydevConsoleRunnerImpl#createRerunAction method

IntelliJ IDEA Ultimate 2021.3

Miscellaneous

com.intellij.util.JavaeeIcons class renamed to com.intellij.javaee.JavaeeIcons

To support dynamic plugins.

icons.RestClientIcons class renamed to com.intellij.httpClient.RestClientIcons

To support dynamic plugins.

Expression Language (EL) / JSP

Expression Language (EL) was extracted from com.intellij.jsp ("Java Server Pages (JSP)") plugin to new com.intellij.javaee.el (Java EE: Expression Language (EL)) plugin. com.intellij.jsp has mandatory dependency on com.intellij.javaee.el. 10+ Ultimate plugins (Spring, Java EE, Frameworks) now have optional dependency on com.intellij.javaee.el plugin (mandatory dependency to com.intellij.jsp was removed).

com.intellij.jsp.el.impl.ELResolveUtil.VariableInfoData class renamed to com.intellij.jsp.el.impl.JspELResolveUtil.VariableInfoData

To support dynamic plugins.

com.intellij.jsp.el.impl.ELResolveUtil class renamed to com.intellij.javaee.el.util.ELResolveUtil

Use new class from com.intellij.javaee.el plugin instead or com.intellij.jsp.el.impl.JspELResolveUtil from com.intellij.jsp plugin.

com.intellij.jsp.el.impl.ELElementProcessor class renamed to com.intellij.javaee.el.ELElementProcessor

Use new class from com.intellij.javaee.el plugin instead.

com.intellij.psi.jsp.el.ELElementTypes class renamed to com.intellij.javaee.el.psi.ELElementTypes

Use new class from com.intellij.javaee.el plugin instead.

com.intellij.psi.jsp.el.ELLiteralExpression class renamed to com.intellij.javaee.el.psi.ELLiteralExpression

Use new class from com.intellij.javaee.el plugin instead.

com.intellij.psi.jsp.el.ELElementType class renamed to com.intellij.javaee.el.psi.ELElementType

Use new class from com.intellij.javaee.el plugin instead.

com.intellij.psi.jsp.el.ELExpressionHolder class renamed to com.intellij.javaee.el.psi.ELExpressionHolder

Use new class from com.intellij.javaee.el plugin instead.

com.intellij.jsp.el.impl.ElVariablesProvider class renamed to com.intellij.javaee.el.providers.ElVariablesProvider

Use new class from com.intellij.javaee.el plugin instead.

com.intellij.psi.jsp.el.ELVariable class renamed to com.intellij.javaee.el.psi.ELVariable

Use new class from com.intellij.javaee.el plugin instead.

com.intellij.psi.jsp.el.ElLiteralCustomReferenceProvider class renamed to com.intellij.javaee.el.psi.ElLiteralCustomReferenceProvider

Use new class from com.intellij.javaee.el plugin instead.

com.intellij.psi.jsp.JspImplicitVariable class renamed to com.intellij.javaee.el.util.ELImplicitVariable

Use new class from com.intellij.javaee.el plugin instead.

Persistence

Package com.intellij.javaee.model.xml.persistence renamed to com.intellij.jpa.model.xml.persistence

To support dynamic plugins.

Application Servers

Various package renames to support dynamic plugins

Old package name

New package name

com.intellij.javaee.serverInstances

com.intellij.javaee.appServers.serverInstances

com.intellij.javaee.appServerIntegrations

com.intellij.javaee.appServers.appServerIntegrations

com.intellij.javaee.deployment

com.intellij.javaee.appServers.deployment

com.intellij.javaee.run

com.intellij.javaee.appServers.run

com.intellij.javaee.deployment.DeploymentModel class renamed to com.intellij.javaee.appServers.deployment.DeploymentModel

To support dynamic plugins.

com.intellij.javaee.deployment.DeploymentSource class renamed to com.intellij.javaee.appServers.deployment.DeploymentSource

To support dynamic plugins.

com.intellij.javaee.deployment.DeploymentProvider class renamed to com.intellij.javaee.appServers.deployment.DeploymentProvider

To support dynamic plugins.

com.intellij.javaee.openapi.ex.AppServerIntegrationsManager class renamed to com.intellij.javaee.appServers.openapi.ex.AppServerIntegrationsManager

To support dynamic plugins.

com.intellij.javaee.appServerIntegrations.AppServerIntegration class renamed to com.intellij.javaee.appServers.appServerIntegrations.AppServerIntegration

To support dynamic plugins.

com.intellij.javaee.appServerIntegrations.ApplicationServerPersistentData class renamed to com.intellij.javaee.appServers.appServerIntegrations.ApplicationServerPersistentData

To support dynamic plugins.

com.intellij.javaee.facet.JavaeeFrameworkSupportInfoCollector class renamed to com.intellij.javaee.appServers.facet.JavaeeFrameworkSupportInfoCollector

To support dynamic plugins.

com.intellij.javaee.appServerIntegrations.ApplicationServer class renamed to com.intellij.javaee.appServers.appServerIntegrations.ApplicationServer

To support dynamic plugins.

com.intellij.javaee.appServerIntegrations.ApplicationServerHelper class renamed to com.intellij.javaee.appServers.appServerIntegrations.ApplicationServerHelper

To support dynamic plugins.

com.intellij.javaee.serverInstances.J2EEServerInstance class renamed to com.intellij.javaee.appServers.serverInstances.J2EEServerInstance

To support dynamic plugins.

com.intellij.javaee.run.configuration.CommonModel class renamed to com.intellij.javaee.appServers.run.configuration.CommonModel

To support dynamic plugins.

com.intellij.javaee.run.localRun.ExecutableObjectStartupPolicy class renamed to com.intellij.javaee.appServers.run.localRun.ExecutableObjectStartupPolicy

To support dynamic plugins.

Database Plugin 2021.3

com.intellij.database.model.ModelLightCopierUtils class removed

Internal class not to be used by 3rd party.

2021.2

IntelliJ Platform 2021.2

com.intellij.openapi.editor.impl.event.DocumentEventImpl.translateLineViaDiff(int) method removed

Use persistent range markers instead, see com.intellij.openapi.editor.Document.createRangeMarker(int, int, boolean) with surviveOnExternalChange=true.

com.intellij.openapi.editor.impl.event.DocumentEventImpl.translateLineViaDiffStrict(int) method removed

Use persistent range markers instead, see com.intellij.openapi.editor.Document.createRangeMarker(int, int, boolean) with surviveOnExternalChange=true.

com.intellij.openapi.file.exclude.EnforcedPlainTextFileType class removed

Use com.intellij.openapi.fileTypes.PlainTextFileType instead.

com.intellij.openapi.updateSettings.impl.CheckForUpdateResult class removed

Use com.intellij.openapi.updateSettings.impl.PlatformUpdates instead.

com.intellij.openapi.updateSettings.impl.UpdateStrategy.checkForUpdates() method return type changed from com.intellij.openapi.updateSettings.impl.CheckForUpdateResult to com.intellij.openapi.updateSettings.impl.PlatformUpdates

Use com.intellij.openapi.updateSettings.impl.PlatformUpdates instead of com.intellij.openapi.updateSettings.impl.CheckForUpdateResult.

com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.PluginsAdvertiser.Plugin class removed

Use com.intellij.ide.plugins.advertiser.PluginData instead.

com.intellij.ide.plugins.DisabledPluginsState.disablePlugin(PluginId) method removed

Use either com.intellij.ide.plugins.PluginManagerCore.disablePlugin(PluginId) or com.intellij.ide.plugins.PluginEnabler.disablePlugins(Collection) instead.

com.intellij.ide.plugins.PluginManagerMain.suggestToEnableInstalledDependantPlugins(PluginEnabler, List) method parameter type changed from com.intellij.ide.plugins.PluginManagerMain.PluginEnabler to com.intellij.ide.plugins.PluginEnabler

com.intellij.ide.plugins.PluginManagerMain.PluginEnabler has been renamed to com.intellij.ide.plugins.PluginEnabler.

com.intellij.ssh.ui.unified.SshConfigConfigurable.Visibility class removed

Use com.intellij.ssh.ui.unified.SshConfigVisibility instead.

com.intellij.ssh.ui.unified.SshConfigComboBox.reload(PresentableId, SshConfigConfigurable.Visibility) method parameter type changed from com.intellij.ssh.ui.unified.SshConfigConfigurable.Visibility to com.intellij.ssh.ui.unified.SshConfigVisibility

SshConfigConfigurable.Visibility has been renamed to SshConfigVisibility.

com.intellij.ssh.ui.unified.SshConfigComboBox(Project, Disposable, SshConfigConfigurable.Visibility) constructor parameter type changed from com.intellij.ssh.ui.unified.SshConfigConfigurable.Visibility to com.intellij.ssh.ui.unified.SshConfigVisibility

SshConfigConfigurable.Visibility has been renamed to SshConfigVisibility.

org.jetbrains.uast.UAnnotated.getAnnotations() method removed

Use org.jetbrains.uast.UAnnotated.getUAnnotations() instead.

org.jetbrains.uast.UAnnotated.getUAnnotations() marked abstract

Previously this circularly referenced org.jetbrains.uast.UAnnotated.getAnnotations(), which has been removed.

com.intellij.openapi.actionSystem.ActionPlaces.isMainMenuOrShortcut(String) method removed

Use isMainMenuOrActionSearch(String) method instead.

Add implementation for com.intellij.openapi.fileEditor.FileEditor.getFile()

Implementations should return non-null VirtualFile instance.

Performance Testing Plugin 2021.2

com.jetbrains.performancePlugin.CommandProvider.getCommands() method return type changed from java.util.List to java.util.Map

Use java.util.List instead of java.util.Map.

Database Plugin 2021.2

com.intellij.database.dataSource.DatabaseCredentialsAuthProvider.UserWidget class removed

Use com.intellij.database.dataSource.DatabaseCredentialsAuthProviderUi.UserWidget instead.

com.intellij.database.actions.DdlActions.DeleteProvider1 class removed

Use com.intellij.database.actions.DbDeleteProvider.getDeleteProvider() instead.

com.intellij.database.model.RawConnectionConfig.getEffectiveUrl(Project) method removed

Use com.intellij.database.model.RawConnectionConfig.getUrl() instead. Or use com.intellij.database.dataSource.DatabaseConnectionEstablisher.processInterceptors().

GitHub Plugin 2021.2

org.jetbrains.plugins.github.util.GithubAuthData class removed

Use org.jetbrains.plugins.github.authentication.GithubAuthenticationManager instead.

org.jetbrains.plugins.github.util.GithubAuthData$BasicAuth class removed

Use org.jetbrains.plugins.github.authentication.GithubAuthenticationManager instead.

org.jetbrains.plugins.github.util.GithubSettings.getAuthData(GithubAuthData) method removed

Use org.jetbrains.plugins.github.authentication.GithubAuthenticationManager instead.

org.jetbrains.plugins.github.util.GithubSettings.getLogin method removed

Use org.jetbrains.plugins.github.authentication.GithubAuthenticationManager instead.

org.jetbrains.plugins.github.util.GithubSettings.isAuthConfigured method removed

Use org.jetbrains.plugins.github.authentication.GithubAuthenticationManager instead.

Spring Plugin 2021.2

icons.SpringApiIcons class moved to package com.intellij.spring

Use com.intellij.spring.SpringApiIcons instead.

icons.SpringApiIcons.Gutter class moved to package com.intellij.spring

Use com.intellij.spring.SpringApiIcons.Gutter instead.

Python Plugin 2021.2.1

com.jetbrains.python.psi.types.PyTypedDictType.Companion.match(PyTypedDictType, PyDictLiteralExpression, TypeEvalContext) method removed

As the result of the refactoring aimed at fixing PY-48799, for dict literals containing only string keys we infer PyTypedDictType now, so there's no need to match dict literals with TypedDicts. There's a new method for comparing the inferred TypedDicts with the given ones: com.jetbrains.python.psi.types.PyTypedDictType.Companion.match(PyType, PyTypedDictType, TypeEvalContext).

2021.1

IntelliJ Platform 2021.1

com.intellij.util.io.PersistentHashMap.isCorrupted method removed

The storage checks for corruption automatically, there is no need of any explicit additional checks.

com.intellij.lang.StdLanguages.JSPX field removed

Add a dependency on the com.intellij.jsp plugin and replace the reference with com.intellij.lang.jspx.JspxLanguageImpl.INSTANCE.

com.intellij.lang.StdLanguages.JSP field removed

Add a dependency on the com.intellij.jsp plugin and replace the reference with com.intellij.lang.jsp.NewJspLanguage.getInstance().

com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.compareItems(alreadyFoundItem) method parameter type changed from SearchEverywhereFoundElementInfo to List<SearchEverywhereFoundElementInfo>

New API is more abstract which allows to review all already found items before making "deduplication" decision. Also consider implementing com.intellij.ide.actions.searcheverywhere.AbstractEqualityProvider instead of com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.

com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.SKIP field removed

Enum class SEEqualElementsActionType was converted to sealed class with the same name.

com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.DO_NOTHING field removed

Enum class SEEqualElementsActionType was converted to sealed class with the same name.

com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.Replace field removed

Enum class SEEqualElementsActionType was converted to sealed class with the same name.

org.sqlite.SQLiteConfig.setBusyTimeout(String) method parameter type changed from String to int

Please use updated sqlite-jdbc API.

com.intellij.usages.impl.rules.UsageTypeProvider.getUsageType method PsiElement parameter marked @NotNull

This may break source-compatibility with inheritors written in Kotlin if they declare parameter type as nullable.

com.jetbrains.performancePlugin.CommandProvider.getCommands(Project) method parameter Project removed

Project is now only accessible via com.intellij.openapi.ui.playback.PlaybackContext.getProject() since it may change during script execution.

JSON Widget suppressor com.intellij.json.jsonWidgetSuppressor EP

Override new method JsonWidgetSuppressor.isCandidateForSuppress(VirtualFile, Project) for quick check in EDT before suppressSwitcherWidget() is called on background thread.

HTTP Client Plugin 2021.1

com.intellij.ws.rest.client package removed

Replaced by com.intellij.httpClient.execution in HTTP Client plugin.

com.intellij.ws.actions package removed

Replaced by com.intellij.httpClient.actions in HTTP Client plugin.

com.intellij.ws.converters package removed

Replaced by com.intellij.httpClient.converters in HTTP Client plugin.

com.intellij.ws.http.request package removed

Replaced by com.intellij.httpClient.http.request in HTTP Client plugin.

Java UML Plugin 2021.1

Rename of packages to .java. specific variants

Old package name

New package name

com.intellij.uml.utils

com.intellij.uml.java.utils

com.intellij.uml.project

com.intellij.uml.java.project

com.intellij.uml.jigsaw

com.intellij.uml.java.jigsaw

Kotlin Plugin 2021.1

org.jetbrains.kotlin.idea.refactoring.changeSignature.KotlinChangeInfo(KotlinMethodDescriptor, String, KotlinTypeInfo, Visibility, List, KotlinParameterInfo, PsiElement, Collection) constructor parameter type changed from org.jetbrains.kotlin.descriptors.Visibility to org.jetbrains.kotlin.descriptors.DescriptorVisibility

Visibility has been renamed to DescriptorVisibility.

Go Plugin 2021.1

com.goide.sdk.combobox.GoSdkChooserCombo.getSdk method moved to the superclass

Recompile the dependant code.

CoffeeScript Plugin 2021.1

icons.CoffeescriptIcons class renamed to org.coffeescript.CoffeescriptIcons

To support dynamic plugins.

Last modified: 14 March 2024