mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-28 01:07:49 +08:00
24 KiB
24 KiB
Incompatible Changes in IntelliJ Platform and Plugins API 2021.*
List of known Breaking API Changes in 2021.*
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 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 parameterEditorWindow
removed- This parameter was never needed, but led to code coupling.
com.intellij.openapi.fileEditor.impl.EditorTabPresentationUtil.getUniqueEditorTabTitle(Project, VirtualFile, EditorWindow)
method parameterEditorWindow
removed- This parameter was never needed, but led to code coupling.
com.intellij.openapi.fileEditor.impl.EditorTabTitleProvider.getEditorTabTitle(Project, VirtualFile, EditorWindow)
method parameterEditorWindow
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<String, String>, PyConsoleOptions.PyConsoleSettings, Consumer<? super String>, String[])
constructor parameter typecom.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 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.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 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 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 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 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 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 removed- Use
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 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 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 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 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 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 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 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 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
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 |
---|---|
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 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 superclass- Recompile the dependant code.
CoffeeScript Plugin 2021.1
icons.CoffeescriptIcons
class renamed toorg.coffeescript.CoffeescriptIcons
- To support dynamic plugins.