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.classloader
totrue
.- 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_TEXT
field removedUse
com.intellij.openapi.ui.TextComponentAccessors.TEXT_FIELD_WITH_HISTORY_WHOLE_TEXT
instead.com.intellij.execution.process.ColoredOutputTypeRegistry.getAnsiColorKey(int)
method removedUse
com.intellij.execution.process.ColoredOutputTypeRegistryImpl.getAnsiColorKey(int)
instead.com.intellij.diagnostic.PerformanceWatcher.Snapshot
class now interfaceRecompile the dependant code or use
com.intellij.diagnostic.PerformanceWatcherImpl.SnapshotImpl
instead.com.intellij.openapi.fileEditor.impl.EditorTabPresentationUtil.getEditorTabTitle(Project, VirtualFile, EditorWindow)
method parameterEditorWindow
removedThis parameter was never needed, but led to code coupling.
com.intellij.openapi.fileEditor.impl.EditorTabPresentationUtil.getUniqueEditorTabTitle(Project, VirtualFile, EditorWindow)
method parameterEditorWindow
removedThis parameter was never needed, but led to code coupling.
com.intellij.openapi.fileEditor.impl.EditorTabTitleProvider.getEditorTabTitle(Project, VirtualFile, EditorWindow)
method parameterEditorWindow
removedThis 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 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 ondataContext
there.com.intellij.ui.EditorTextField.addNotify()
method marked finalPlease use
addSettingsProvider(EditorSettingsProvider)
to configureEditor
as editor creation may be postponed now.
VCS Log 2021.3
com.intellij.vcs.log.ui.frame.CommitPanel
class 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#createRerunAction
method
IntelliJ IDEA Ultimate 2021.3
Miscellaneous
com.intellij.util.JavaeeIcons
class renamed tocom.intellij.javaee.JavaeeIcons
To support dynamic plugins.
icons.RestClientIcons
class renamed tocom.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 tocom.intellij.jsp.el.impl.JspELResolveUtil.VariableInfoData
To support dynamic plugins.
com.intellij.jsp.el.impl.ELResolveUtil
class renamed tocom.intellij.javaee.el.util.ELResolveUtil
Use new class from
com.intellij.javaee.el
plugin instead orcom.intellij.jsp.el.impl.JspELResolveUtil
fromcom.intellij.jsp
plugin.com.intellij.jsp.el.impl.ELElementProcessor
class renamed tocom.intellij.javaee.el.ELElementProcessor
Use new class from
com.intellij.javaee.el
plugin instead.com.intellij.psi.jsp.el.ELElementTypes
class renamed tocom.intellij.javaee.el.psi.ELElementTypes
Use new class from
com.intellij.javaee.el
plugin instead.com.intellij.psi.jsp.el.ELLiteralExpression
class renamed tocom.intellij.javaee.el.psi.ELLiteralExpression
Use new class from
com.intellij.javaee.el
plugin instead.com.intellij.psi.jsp.el.ELElementType
class renamed tocom.intellij.javaee.el.psi.ELElementType
Use new class from
com.intellij.javaee.el
plugin instead.com.intellij.psi.jsp.el.ELExpressionHolder
class renamed tocom.intellij.javaee.el.psi.ELExpressionHolder
Use new class from
com.intellij.javaee.el
plugin instead.com.intellij.jsp.el.impl.ElVariablesProvider
class renamed tocom.intellij.javaee.el.providers.ElVariablesProvider
Use new class from
com.intellij.javaee.el
plugin instead.com.intellij.psi.jsp.el.ELVariable
class renamed tocom.intellij.javaee.el.psi.ELVariable
Use new class from
com.intellij.javaee.el
plugin instead.com.intellij.psi.jsp.el.ElLiteralCustomReferenceProvider
class renamed tocom.intellij.javaee.el.psi.ElLiteralCustomReferenceProvider
Use new class from
com.intellij.javaee.el
plugin instead.com.intellij.psi.jsp.JspImplicitVariable
class renamed tocom.intellij.javaee.el.util.ELImplicitVariable
Use new class from
com.intellij.javaee.el
plugin instead.
Persistence
- Package
com.intellij.javaee.model.xml.persistence
renamed 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.DeploymentModel
class renamed tocom.intellij.javaee.appServers.deployment.DeploymentModel
To support dynamic plugins.
com.intellij.javaee.deployment.DeploymentSource
class renamed tocom.intellij.javaee.appServers.deployment.DeploymentSource
To support dynamic plugins.
com.intellij.javaee.deployment.DeploymentProvider
class renamed tocom.intellij.javaee.appServers.deployment.DeploymentProvider
To support dynamic plugins.
com.intellij.javaee.openapi.ex.AppServerIntegrationsManager
class renamed tocom.intellij.javaee.appServers.openapi.ex.AppServerIntegrationsManager
To support dynamic plugins.
com.intellij.javaee.appServerIntegrations.AppServerIntegration
class renamed tocom.intellij.javaee.appServers.appServerIntegrations.AppServerIntegration
To support dynamic plugins.
com.intellij.javaee.appServerIntegrations.ApplicationServerPersistentData
class renamed tocom.intellij.javaee.appServers.appServerIntegrations.ApplicationServerPersistentData
To support dynamic plugins.
com.intellij.javaee.facet.JavaeeFrameworkSupportInfoCollector
class renamed tocom.intellij.javaee.appServers.facet.JavaeeFrameworkSupportInfoCollector
To support dynamic plugins.
com.intellij.javaee.appServerIntegrations.ApplicationServer
class renamed tocom.intellij.javaee.appServers.appServerIntegrations.ApplicationServer
To support dynamic plugins.
com.intellij.javaee.appServerIntegrations.ApplicationServerHelper
class renamed tocom.intellij.javaee.appServers.appServerIntegrations.ApplicationServerHelper
To support dynamic plugins.
com.intellij.javaee.serverInstances.J2EEServerInstance
class renamed tocom.intellij.javaee.appServers.serverInstances.J2EEServerInstance
To support dynamic plugins.
com.intellij.javaee.run.configuration.CommonModel
class renamed tocom.intellij.javaee.appServers.run.configuration.CommonModel
To support dynamic plugins.
com.intellij.javaee.run.localRun.ExecutableObjectStartupPolicy
class renamed tocom.intellij.javaee.appServers.run.localRun.ExecutableObjectStartupPolicy
To support dynamic plugins.
Database Plugin 2021.3
com.intellij.database.model.ModelLightCopierUtils
class 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.EnforcedPlainTextFileType
class removedUse
com.intellij.openapi.fileTypes.PlainTextFileType
instead.com.intellij.openapi.updateSettings.impl.CheckForUpdateResult
class removedUse
com.intellij.openapi.updateSettings.impl.PlatformUpdates
instead.com.intellij.openapi.updateSettings.impl.UpdateStrategy.checkForUpdates()
method return type changed fromcom.intellij.openapi.updateSettings.impl.CheckForUpdateResult
tocom.intellij.openapi.updateSettings.impl.PlatformUpdates
Use
com.intellij.openapi.updateSettings.impl.PlatformUpdates
instead ofcom.intellij.openapi.updateSettings.impl.CheckForUpdateResult
.com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.PluginsAdvertiser.Plugin
class removedUse
com.intellij.ide.plugins.advertiser.PluginData
instead.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.PluginEnabler
tocom.intellij.ide.plugins.PluginEnabler
com.intellij.ide.plugins.PluginManagerMain.PluginEnabler
has been renamed tocom.intellij.ide.plugins.PluginEnabler
.com.intellij.ssh.ui.unified.SshConfigConfigurable.Visibility
class removedUse
com.intellij.ssh.ui.unified.SshConfigVisibility
instead.com.intellij.ssh.ui.unified.SshConfigComboBox.reload(PresentableId, SshConfigConfigurable.Visibility)
method parameter type changed fromcom.intellij.ssh.ui.unified.SshConfigConfigurable.Visibility
tocom.intellij.ssh.ui.unified.SshConfigVisibility
SshConfigConfigurable.Visibility
has been renamed toSshConfigVisibility
.com.intellij.ssh.ui.unified.SshConfigComboBox(Project, Disposable, SshConfigConfigurable.Visibility)
constructor parameter type changed fromcom.intellij.ssh.ui.unified.SshConfigConfigurable.Visibility
tocom.intellij.ssh.ui.unified.SshConfigVisibility
SshConfigConfigurable.Visibility
has 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
VirtualFile
instance.
Performance Testing Plugin 2021.2
com.jetbrains.performancePlugin.CommandProvider.getCommands()
method return type changed fromjava.util.List
tojava.util.Map
Use
java.util.List
instead ofjava.util.Map
.
Database Plugin 2021.2
com.intellij.database.dataSource.DatabaseCredentialsAuthProvider.UserWidget
class removedUse
com.intellij.database.dataSource.DatabaseCredentialsAuthProviderUi.UserWidget
instead.com.intellij.database.actions.DdlActions.DeleteProvider1
class 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.GithubAuthData
class removedUse
org.jetbrains.plugins.github.authentication.GithubAuthenticationManager
instead.org.jetbrains.plugins.github.util.GithubAuthData$BasicAuth
class removedUse
org.jetbrains.plugins.github.authentication.GithubAuthenticationManager
instead.org.jetbrains.plugins.github.util.GithubSettings.getAuthData(GithubAuthData)
method removedUse
org.jetbrains.plugins.github.authentication.GithubAuthenticationManager
instead.org.jetbrains.plugins.github.util.GithubSettings.getLogin
method removedUse
org.jetbrains.plugins.github.authentication.GithubAuthenticationManager
instead.org.jetbrains.plugins.github.util.GithubSettings.isAuthConfigured
method removedUse
org.jetbrains.plugins.github.authentication.GithubAuthenticationManager
instead.
Spring Plugin 2021.2
icons.SpringApiIcons
class moved to packagecom.intellij.spring
Use
com.intellij.spring.SpringApiIcons
instead.icons.SpringApiIcons.Gutter
class moved to packagecom.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 removedAs 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 withTypedDict
s. There's a new method for comparing the inferredTypedDict
s 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 removedThe storage checks for corruption automatically, there is no need of any explicit additional checks.
com.intellij.lang.StdLanguages.JSPX
field removedAdd a dependency on the
com.intellij.jsp
plugin and replace the reference withcom.intellij.lang.jspx.JspxLanguageImpl.INSTANCE
.com.intellij.lang.StdLanguages.JSP
field removedAdd a dependency on the
com.intellij.jsp
plugin and replace the reference withcom.intellij.lang.jsp.NewJspLanguage.getInstance()
.com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.compareItems(alreadyFoundItem)
method parameter type changed fromSearchEverywhereFoundElementInfo
toList<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 ofcom.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider
.com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.SKIP
field removedEnum class
SEEqualElementsActionType
was converted to sealed class with the same name.com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.DO_NOTHING
field removedEnum class
SEEqualElementsActionType
was converted to sealed class with the same name.com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.SEEqualElementsActionType.Replace
field removedEnum class
SEEqualElementsActionType
was converted to sealed class with the same name.org.sqlite.SQLiteConfig.setBusyTimeout(String)
method parameter type changed fromString
toint
Please use updated sqlite-jdbc API.
com.intellij.usages.impl.rules.UsageTypeProvider.getUsageType
methodPsiElement
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 parameterProject
removedProject 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 beforesuppressSwitcherWidget()
is called on a background thread.
HTTP Client Plugin 2021.1
com.intellij.ws.rest.client
package removedReplaced by
com.intellij.httpClient.execution
in HTTP Client plugin.com.intellij.ws.actions
package removedReplaced by
com.intellij.httpClient.actions
in HTTP Client plugin.com.intellij.ws.converters
package removedReplaced by
com.intellij.httpClient.converters
in HTTP Client plugin.com.intellij.ws.http.request
package removedReplaced 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 |
---|---|
|
|
|
|
|
|
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.Visibility
toorg.jetbrains.kotlin.descriptors.DescriptorVisibility
Visibility
has been renamed toDescriptorVisibility
.
Go Plugin 2021.1
com.goide.sdk.combobox.GoSdkChooserCombo.getSdk
method moved to the superclassRecompile the dependant code.
CoffeeScript Plugin 2021.1
icons.CoffeescriptIcons
class renamed toorg.coffeescript.CoffeescriptIcons
To support dynamic plugins.