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 [...]orCreated extension classloader is not equal to plugin's one Set system property
idea.force.use.core.classloadertotrue.- 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 removedUse
com.intellij.ui.mac.MacMessages.showMessageDialog(String, String, String[], boolean, Window, int, int, DoNotAskOption)instead.com.intellij.openapi.ui.MessageDialogBuilder.doNotAsk(DialogWrapper.DoNotAskOption)method removedUse
com.intellij.openapi.ui.MessageDialogBuilder.doNotAsk(DoNotAskOption)instead.com.intellij.ide.util.projectWizard.WizardContext.getWizard()method removedUse
com.intellij.ide.util.projectWizard.WizardContext.getUserData(AbstractWizard.KEY)instead.com.intellij.openapi.ui.TextComponentAccessor.TEXT_FIELD_WITH_HISTORY_WHOLE_TEXTfield removedUse
com.intellij.openapi.ui.TextComponentAccessors.TEXT_FIELD_WITH_HISTORY_WHOLE_TEXTinstead.com.intellij.execution.process.ColoredOutputTypeRegistry.getAnsiColorKey(int)method removedUse
com.intellij.execution.process.ColoredOutputTypeRegistryImpl.getAnsiColorKey(int)instead.com.intellij.diagnostic.PerformanceWatcher.Snapshotclass now interfaceRecompile the dependant code or use
com.intellij.diagnostic.PerformanceWatcherImpl.SnapshotImplinstead.com.intellij.openapi.fileEditor.impl.EditorTabPresentationUtil.getEditorTabTitle(Project, VirtualFile, EditorWindow)method parameterEditorWindowremovedThis parameter was never needed, but led to code coupling.
com.intellij.openapi.fileEditor.impl.EditorTabPresentationUtil.getUniqueEditorTabTitle(Project, VirtualFile, EditorWindow)method parameterEditorWindowremovedThis parameter was never needed, but led to code coupling.
com.intellij.openapi.fileEditor.impl.EditorTabTitleProvider.getEditorTabTitle(Project, VirtualFile, EditorWindow)method parameterEditorWindowremovedThis parameter was never needed, but led to code coupling.
- Constructor
com.intellij.codeInsight.hints.settings.InlayProviderSettingsModelchanged Added
Languageparameter.com.intellij.codeInsight.hints.settings.InlayProviderSettingsModel.getDescription()abstract method addedProvides short description.
com.intellij.codeInsight.hints.settings.InlayProviderSettingsModel.getCaseDescription(ImmediateConfigurable.Case)abstract method addedProvides description text for given case.
com.intellij.codeInsight.hints.settings.InlayProviderSettingsModel.getCasePreview(ImmediateConfigurable.Case)abstract method addedProvides preview text for given case.
com.intellij.openapi.wm.ToolWindow.getEmptyText()method removedPlease safe-cast and use
com.intellij.openapi.wm.ex.ToolWindowEx.getEmptyText().com.intellij.openapi.actionSystem.ex.CustomComponentAction#createCustomComponent(Presentation, String, DataContext)method removedPlease use
createCustomComponent(Presentation, String), one shall not depend ondataContextthere.com.intellij.ui.EditorTextField.addNotify()method marked finalPlease use
addSettingsProvider(EditorSettingsProvider)to configureEditoras editor creation may be postponed now.
VCS Log 2021.3
com.intellij.vcs.log.ui.frame.CommitPanelclass removedRemoved unnecessary inheritance.
Git Plugin 2021.3
git4idea.ui.branch.GitBranchActionsUtilKt.checkoutOrReset(Project, List, String, GitNewBranchOptions)method removedMethod was dropped to avoid supporting outdated behavior.
git4idea.ui.branch.GitBranchActionsUtilKt.createNewBranch(Project, List, String, GitNewBranchOptions)method removedMethod 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 typecom.intellij.util.Consumer<? super String>removedThere is no need to pass a Restart action as a constructor parameter, it should be created inside the
com.jetbrains.python.console.PydevConsoleRunnerImpl#createRerunActionmethod
IntelliJ IDEA Ultimate 2021.3
Miscellaneous
com.intellij.util.JavaeeIconsclass renamed tocom.intellij.javaee.JavaeeIconsTo support dynamic plugins.
icons.RestClientIconsclass renamed tocom.intellij.httpClient.RestClientIconsTo 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.VariableInfoDataclass renamed tocom.intellij.jsp.el.impl.JspELResolveUtil.VariableInfoDataTo support dynamic plugins.
com.intellij.jsp.el.impl.ELResolveUtilclass renamed tocom.intellij.javaee.el.util.ELResolveUtilUse new class from
com.intellij.javaee.elplugin instead orcom.intellij.jsp.el.impl.JspELResolveUtilfromcom.intellij.jspplugin.com.intellij.jsp.el.impl.ELElementProcessorclass renamed tocom.intellij.javaee.el.ELElementProcessorUse new class from
com.intellij.javaee.elplugin instead.com.intellij.psi.jsp.el.ELElementTypesclass renamed tocom.intellij.javaee.el.psi.ELElementTypesUse new class from
com.intellij.javaee.elplugin instead.com.intellij.psi.jsp.el.ELLiteralExpressionclass renamed tocom.intellij.javaee.el.psi.ELLiteralExpressionUse new class from
com.intellij.javaee.elplugin instead.com.intellij.psi.jsp.el.ELElementTypeclass renamed tocom.intellij.javaee.el.psi.ELElementTypeUse new class from
com.intellij.javaee.elplugin instead.com.intellij.psi.jsp.el.ELExpressionHolderclass renamed tocom.intellij.javaee.el.psi.ELExpressionHolderUse new class from
com.intellij.javaee.elplugin instead.com.intellij.jsp.el.impl.ElVariablesProviderclass renamed tocom.intellij.javaee.el.providers.ElVariablesProviderUse new class from
com.intellij.javaee.elplugin instead.com.intellij.psi.jsp.el.ELVariableclass renamed tocom.intellij.javaee.el.psi.ELVariableUse new class from
com.intellij.javaee.elplugin instead.com.intellij.psi.jsp.el.ElLiteralCustomReferenceProviderclass renamed tocom.intellij.javaee.el.psi.ElLiteralCustomReferenceProviderUse new class from
com.intellij.javaee.elplugin instead.com.intellij.psi.jsp.JspImplicitVariableclass renamed tocom.intellij.javaee.el.util.ELImplicitVariableUse new class from
com.intellij.javaee.elplugin instead.
Persistence
- Package
com.intellij.javaee.model.xml.persistencerenamed tocom.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.deployment.DeploymentModelclass renamed tocom.intellij.javaee.appServers.deployment.DeploymentModelTo support dynamic plugins.
com.intellij.javaee.deployment.DeploymentSourceclass renamed tocom.intellij.javaee.appServers.deployment.DeploymentSourceTo support dynamic plugins.
com.intellij.javaee.deployment.DeploymentProviderclass renamed tocom.intellij.javaee.appServers.deployment.DeploymentProviderTo support dynamic plugins.
com.intellij.javaee.openapi.ex.AppServerIntegrationsManagerclass renamed tocom.intellij.javaee.appServers.openapi.ex.AppServerIntegrationsManagerTo support dynamic plugins.
com.intellij.javaee.appServerIntegrations.AppServerIntegrationclass renamed tocom.intellij.javaee.appServers.appServerIntegrations.AppServerIntegrationTo support dynamic plugins.
com.intellij.javaee.appServerIntegrations.ApplicationServerPersistentDataclass renamed tocom.intellij.javaee.appServers.appServerIntegrations.ApplicationServerPersistentDataTo support dynamic plugins.
com.intellij.javaee.facet.JavaeeFrameworkSupportInfoCollectorclass renamed tocom.intellij.javaee.appServers.facet.JavaeeFrameworkSupportInfoCollectorTo support dynamic plugins.
com.intellij.javaee.appServerIntegrations.ApplicationServerclass renamed tocom.intellij.javaee.appServers.appServerIntegrations.ApplicationServerTo support dynamic plugins.
com.intellij.javaee.appServerIntegrations.ApplicationServerHelperclass renamed tocom.intellij.javaee.appServers.appServerIntegrations.ApplicationServerHelperTo support dynamic plugins.
com.intellij.javaee.serverInstances.J2EEServerInstanceclass renamed tocom.intellij.javaee.appServers.serverInstances.J2EEServerInstanceTo support dynamic plugins.
com.intellij.javaee.run.configuration.CommonModelclass renamed tocom.intellij.javaee.appServers.run.configuration.CommonModelTo support dynamic plugins.
com.intellij.javaee.run.localRun.ExecutableObjectStartupPolicyclass renamed tocom.intellij.javaee.appServers.run.localRun.ExecutableObjectStartupPolicyTo support dynamic plugins.
Database Plugin 2021.3
com.intellij.database.model.ModelLightCopierUtilsclass removedInternal class not to be used by 3rd party.
2021.2
IntelliJ Platform 2021.2
com.intellij.openapi.editor.impl.event.DocumentEventImpl.translateLineViaDiff(int)method removedUse persistent range markers instead, see
com.intellij.openapi.editor.Document.createRangeMarker(int, int, boolean)withsurviveOnExternalChange=true.com.intellij.openapi.editor.impl.event.DocumentEventImpl.translateLineViaDiffStrict(int)method removedUse persistent range markers instead, see
com.intellij.openapi.editor.Document.createRangeMarker(int, int, boolean)withsurviveOnExternalChange=true.com.intellij.openapi.file.exclude.EnforcedPlainTextFileTypeclass removedUse
com.intellij.openapi.fileTypes.PlainTextFileTypeinstead.com.intellij.openapi.updateSettings.impl.CheckForUpdateResultclass removedUse
com.intellij.openapi.updateSettings.impl.PlatformUpdatesinstead.com.intellij.openapi.updateSettings.impl.UpdateStrategy.checkForUpdates()method return type changed fromcom.intellij.openapi.updateSettings.impl.CheckForUpdateResulttocom.intellij.openapi.updateSettings.impl.PlatformUpdatesUse
com.intellij.openapi.updateSettings.impl.PlatformUpdatesinstead ofcom.intellij.openapi.updateSettings.impl.CheckForUpdateResult.com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.PluginsAdvertiser.Pluginclass removedUse
com.intellij.ide.plugins.advertiser.PluginDatainstead.com.intellij.ide.plugins.DisabledPluginsState.disablePlugin(PluginId)method removedUse either
com.intellij.ide.plugins.PluginManagerCore.disablePlugin(PluginId)orcom.intellij.ide.plugins.PluginEnabler.disablePlugins(Collection)instead.com.intellij.ide.plugins.PluginManagerMain.suggestToEnableInstalledDependantPlugins(PluginEnabler, List)method parameter type changed fromcom.intellij.ide.plugins.PluginManagerMain.PluginEnablertocom.intellij.ide.plugins.PluginEnablercom.intellij.ide.plugins.PluginManagerMain.PluginEnablerhas been renamed tocom.intellij.ide.plugins.PluginEnabler.com.intellij.ssh.ui.unified.SshConfigConfigurable.Visibilityclass removedUse
com.intellij.ssh.ui.unified.SshConfigVisibilityinstead.com.intellij.ssh.ui.unified.SshConfigComboBox.reload(PresentableId, SshConfigConfigurable.Visibility)method parameter type changed fromcom.intellij.ssh.ui.unified.SshConfigConfigurable.Visibilitytocom.intellij.ssh.ui.unified.SshConfigVisibilitySshConfigConfigurable.Visibilityhas been renamed toSshConfigVisibility.com.intellij.ssh.ui.unified.SshConfigComboBox(Project, Disposable, SshConfigConfigurable.Visibility)constructor parameter type changed fromcom.intellij.ssh.ui.unified.SshConfigConfigurable.Visibilitytocom.intellij.ssh.ui.unified.SshConfigVisibilitySshConfigConfigurable.Visibilityhas been renamed toSshConfigVisibility.org.jetbrains.uast.UAnnotated.getAnnotations()method removedUse
org.jetbrains.uast.UAnnotated.getUAnnotations()instead.org.jetbrains.uast.UAnnotated.getUAnnotations()marked abstractPreviously this circularly referenced
org.jetbrains.uast.UAnnotated.getAnnotations(), which has been removed.com.intellij.openapi.actionSystem.ActionPlaces.isMainMenuOrShortcut(String)method removedUse
isMainMenuOrActionSearch(String)method instead.- Add implementation for
com.intellij.openapi.fileEditor.FileEditor.getFile() Implementations should return non-null
VirtualFileinstance.
Performance Testing Plugin 2021.2
com.jetbrains.performancePlugin.CommandProvider.getCommands()method return type changed fromjava.util.Listtojava.util.MapUse
java.util.Listinstead ofjava.util.Map.
Database Plugin 2021.2
com.intellij.database.dataSource.DatabaseCredentialsAuthProvider.UserWidgetclass removedUse
com.intellij.database.dataSource.DatabaseCredentialsAuthProviderUi.UserWidgetinstead.com.intellij.database.actions.DdlActions.DeleteProvider1class removedUse
com.intellij.database.actions.DbDeleteProvider.getDeleteProvider()instead.com.intellij.database.model.RawConnectionConfig.getEffectiveUrl(Project)method removedUse
com.intellij.database.model.RawConnectionConfig.getUrl()instead. Or usecom.intellij.database.dataSource.DatabaseConnectionEstablisher.processInterceptors().
GitHub Plugin 2021.2
org.jetbrains.plugins.github.util.GithubAuthDataclass removedUse
org.jetbrains.plugins.github.authentication.GithubAuthenticationManagerinstead.org.jetbrains.plugins.github.util.GithubAuthData$BasicAuthclass removedUse
org.jetbrains.plugins.github.authentication.GithubAuthenticationManagerinstead.org.jetbrains.plugins.github.util.GithubSettings.getAuthData(GithubAuthData)method removedUse
org.jetbrains.plugins.github.authentication.GithubAuthenticationManagerinstead.org.jetbrains.plugins.github.util.GithubSettings.getLoginmethod removedUse
org.jetbrains.plugins.github.authentication.GithubAuthenticationManagerinstead.org.jetbrains.plugins.github.util.GithubSettings.isAuthConfiguredmethod removedUse
org.jetbrains.plugins.github.authentication.GithubAuthenticationManagerinstead.
Spring Plugin 2021.2
icons.SpringApiIconsclass moved to packagecom.intellij.springUse
com.intellij.spring.SpringApiIconsinstead.icons.SpringApiIcons.Gutterclass moved to packagecom.intellij.springUse
com.intellij.spring.SpringApiIcons.Gutterinstead.
Python Plugin 2021.2.1
com.jetbrains.python.psi.types.PyTypedDictType.Companion.match(PyTypedDictType, PyDictLiteralExpression, TypeEvalContext)method removedAs the result of the refactoring aimed at fixing PY-48799, for dict literals containing only string keys we infer
PyTypedDictTypenow, so there's no need to match dict literals withTypedDicts. There's a new method for comparing the inferredTypedDicts 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.isCorruptedmethod removedThe storage checks for corruption automatically, there is no need of any explicit additional checks.
com.intellij.lang.StdLanguages.JSPXfield removedAdd a dependency on the
com.intellij.jspplugin and replace the reference withcom.intellij.lang.jspx.JspxLanguageImpl.INSTANCE.com.intellij.lang.StdLanguages.JSPfield removedAdd a dependency on the
com.intellij.jspplugin and replace the reference withcom.intellij.lang.jsp.NewJspLanguage.getInstance().com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.compareItems(alreadyFoundItem)method parameter type changed fromSearchEverywhereFoundElementInfotoList<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.AbstractEqualityProviderinstead ofcom.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.SKIPfield removedEnum class
SEEqualElementsActionTypewas converted to sealed class with the same name.com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.DO_NOTHINGfield removedEnum class
SEEqualElementsActionTypewas converted to sealed class with the same name.com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.Replacefield removedEnum class
SEEqualElementsActionTypewas converted to sealed class with the same name.org.sqlite.SQLiteConfig.setBusyTimeout(String)method parameter type changed fromStringtointPlease use updated sqlite-jdbc API.
com.intellij.usages.impl.rules.UsageTypeProvider.getUsageTypemethodPsiElementparameter marked@NotNullThis may break source-compatibility with inheritors written in Kotlin if they declare parameter type as nullable.
com.jetbrains.performancePlugin.CommandProvider.getCommands(Project)method parameterProjectremovedProject 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.jsonWidgetSuppressorextension point Override new method
JsonWidgetSuppressor.isCandidateForSuppress(VirtualFile, Project)for quick check in EDT beforesuppressSwitcherWidget()is called on a background thread.
HTTP Client Plugin 2021.1
com.intellij.ws.rest.clientpackage removedReplaced by
com.intellij.httpClient.executionin HTTP Client plugin.com.intellij.ws.actionspackage removedReplaced by
com.intellij.httpClient.actionsin HTTP Client plugin.com.intellij.ws.converterspackage removedReplaced by
com.intellij.httpClient.convertersin HTTP Client plugin.com.intellij.ws.http.requestpackage removedReplaced by
com.intellij.httpClient.http.requestin HTTP Client plugin.
Java UML Plugin 2021.1
Rename of packages to .java. specific variants
Old package name | New package name |
|---|---|
|
|
|
|
|
|
Kotlin Plugin 2021.1
org.jetbrains.kotlin.idea.refactoring.changeSignature.KotlinChangeInfo(KotlinMethodDescriptor, String, KotlinTypeInfo, Visibility, List, KotlinParameterInfo, PsiElement, Collection)constructor parameter type changed fromorg.jetbrains.kotlin.descriptors.Visibilitytoorg.jetbrains.kotlin.descriptors.DescriptorVisibilityVisibilityhas been renamed toDescriptorVisibility.
Go Plugin 2021.1
com.goide.sdk.combobox.GoSdkChooserCombo.getSdkmethod moved to the superclassRecompile the dependant code.
CoffeeScript Plugin 2021.1
icons.CoffeescriptIconsclass renamed toorg.coffeescript.CoffeescriptIconsTo support dynamic plugins.