Incompatible Changes in IntelliJ Platform and Plugins API 2021.*
Please see 验证插件兼容性 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
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 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 ondataContext
there.- com.intellij.ui.EditorTextField.addNotify() method marked final
Please use
addSettingsProvider(EditorSettingsProvider)
to configureEditor
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
, 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 orcom.intellij.jsp.el.impl.JspELResolveUtil
fromcom.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.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)
withsurviveOnExternalChange=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)
withsurviveOnExternalChange=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 ofcom.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)
orcom.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 tocom.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 toSshConfigVisibility
.- 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 toSshConfigVisibility
.- 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 ofjava.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 usecom.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 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 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 withcom.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 withcom.intellij.lang.jsp.NewJspLanguage.getInstance()
.- com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvider.compareItems(alreadyFoundItem) method parameter type changed from SearchEverywhereFoundElementInfo to List
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 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 beforesuppressSwitcherWidget()
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 |
---|---|
|
|
|
|
|
|
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 toDescriptorVisibility
.
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.