Incompatible Changes in IntelliJ Platform and Plugins API 2019.*
Please see 验证插件兼容性 on how to use Plugin Verifier and IDE inspections to check such problems.
2019.3
IntelliJ Platform 2019.3
- com.intellij.codeInsight.TailType.getLocalCodeStyleSettings(Editor, int) method removed
Use
com.intellij.psi.codeStyle.CommonCodeStyleSettings.getLocalCodeStyleSettings(Editor, int)
instead.- com.intellij.codeInsight.TailType.EQ field removed
Use
com.intellij.codeInsight.lookup.EqTailType.INSTANCE
instead.- com.intellij.codeInsight.TailType.COMMA field removed
Use
com.intellij.codeInsight.lookup.CommaTailType.INSTANCE
instead.- com.intellij.codeInsight.completion.CompletionContributor.getActionShortcut(String) method removed
Use
com.intellij.codeInsight.completion.CompletionUtil.getActionShortcut(String)
instead- com.intellij.codeInsight.AutoPopupController.runTransactionWithEverythingCommitted(Project, Runnable) method removed
Use
com.intellij.codeInsight.AutoPopupControllerImpl.runTransactionWithEverythingCommitted(Project, Runnable)
instead- com.intellij.codeInsight.completion.InsertionContext.getCodeStyleSettings() method removed
Use
com.intellij.codeInsight.completion.util.CompletionStyleUtil.getCodeStyleSettings(InsertionContext)
instead- com.intellij.codeInsight.completion.CompletionUtil.sortMatching(PrefixMatcher, Collection) method removed
Use
com.intellij.codeInsight.completion.PrefixMatcher.sortMatching(Collection)
instead- com.intellij.json.JsonFileTypeFactory class removed
Use
com.intellij.fileType
extension point instead.- com.intellij.util.containers.ConcurrentHashSet class removed
Use
com.intellij.util.containers.ContainerUtil#newConcurrentSet
instead.- com.intellij.openapi.editor.impl.EditorFactoryImpl(EditorActionManager) constructor removed
Use
com.intellij.openapi.editor.EditorFactory.getInstance()
instead.- com.intellij.util.net.ssl.CertificateManager.HOSTNAME_VERIFIER field removed
Use
org.apache.http.conn.ssl.DefaultHostnameVerifier
instead.- com.intellij.openapi.util.BuildNumber.getBuildNumber() method removed
See
BuildNumber.asString
,BuildNumber.getBaselineVersion()
andBuildNumber.getComponents()
as alternatives.- com.intellij.remoteServer.configuration.deployment.DeploymentConfigurationManager.createAndRunConfiguration(ServerType, RemoteServer) method removed
Use
DeploymentConfigurationManager.createAndRunConfiguration(ServerType, RemoteServer, DeploymentSourceType)
instead.
VCS
- com.intellij.openapi.vcs.changes.ui.ChangesListView.UNVERSIONED_FILES_DATA_KEY field removed
Use
com.intellij.openapi.vcs.changes.ui.ChangesListView.UNVERSIONED_FILE_PATHS_DATA_KEY
instead.- com.intellij.openapi.vcs.VcsVFSListener.myAddedFiles field removed
Use
com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireAddedFiles()
instead.- com.intellij.openapi.vcs.VcsVFSListener.myDeletedFiles field removed
Use
com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireAllDeletedFiles().deletedFiles
instead.- com.intellij.openapi.vcs.VcsVFSListener.myDeletedWithoutConfirmFiles field removed
Use
com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireAllDeletedFiles().deletedWithoutConfirmFiles
instead.- com.intellij.openapi.vcs.VcsVFSListener.myExceptions field removed
Use
com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireExceptions()
orcom.intellij.openapi.vcs.VcsVFSListener.myProcessor.addException(VcsException exception)
instead.
Test Framework
- com.intellij.testFramework.PlatformTestUtil.registerExtension(ExtensionsArea, T, Disposable) method removed
Use
com.intellij.testFramework.ServiceContainerUtil#registerExtension(BaseExtensionPointName, T, Disposable)
instead.- com.intellij.testFramework.PlatformTestUtil.registerExtension(ExtensionsArea, BaseExtensionPointName, T, Disposable) method removed
Use
com.intellij.testFramework.ServiceContainerUtil#registerExtension(BaseExtensionPointName, T, Disposable)
instead.- com.intellij.testFramework.fixtures.DefaultLightProjectDescriptor.getModuleType() method removed
Use
com.intellij.testFramework.fixtures.DefaultLightProjectDescriptor.getModuleTypeId()
instead (seecom.intellij.openapi.module.ModuleTypeId
).
Java Plugin 2019.3
- com.intellij.codeInspection.magicConstant.MagicCompletionContributor.getAllowedValues(PsiElement) method return type changed from com.intellij.codeInspection.magicConstant.MagicConstantInspection.AllowedValues to com.intellij.codeInspection.magicConstant.MagicConstantUtils.AllowedValues
Use new type instead.
Groovy Plugin 2019.3
- org.jetbrains.plugins.groovy.extensions.GroovyScriptTypeDetector(GroovyScriptType, String[]) constructor removed
Use constructor
GroovyScriptTypeDetector(GroovyScriptType)
instead, andcom.intellij.fileType
to register additional extensions.
Cucumber Plugin 2019.3
- org.jetbrains.plugins.cucumber.javascript.CucumberJavaScriptStepDefinitionCreator#createStepDefinition(GherkinStep, PsiFile) method removed
Use
org.jetbrains.plugins.cucumber.javascript.CucumberJavaScriptStepDefinitionCreator#createStepDefinition(GherkinStep, PsiFile, boolean)
instead.- org.jetbrains.plugins.cucumber.psi.GherkinStep#getStepName() method removed
Use
org.jetbrains.plugins.cucumber.psi.GherkinStep#getName()
instead.- org.jetbrains.plugins.cucumber.CucumberJvmExtensionPoint#resolveStep() method removed
See
org.jetbrains.plugins.cucumber.steps.reference.CucumberStepReference#multiResolveInner()
instead.- org.jetbrains.plugins.cucumber.CucumberJvmExtensionPoint#getGlues() method removed
Java specific method was moved to CucumberJava implementation.
DataGrip and Database Tools Plugin 2019.3
- com.intellij.sql.dialects.mssql.MssqlDialect class renamed to com.intellij.sql.dialects.mssql.MsDialect
Do not use SQL dialect classes directly.
- com.intellij.sql.dialects.oracle.OracleDialect class renamed to com.intellij.sql.dialects.oracle.OraDialect
Do not use SQL dialect classes directly.
- com.intellij.sql.dialects.postgres.PostgresDialect class renamed to com.intellij.sql.dialects.postgres.PgDialect
Do not use SQL dialect classes directly.
RubyMine and Ruby Plugin 2019.3
- org.jetbrains.plugins.ruby.ruby.codeInsight.types.RubyTypeProvider.createTypeBySymbolFromProviders(Symbol symbol, Context context) method parameter Context removed
This was done as part of
RUBY-24760
in order to move to new Context-less approach.
PyCharm and Python Plugin 2019.3
com.jetbrains.python.inspections.PythonVisitorFilter
class moved to package com.jetbrains.python.psi
- com.jetbrains.python.psi.PyUtil.addElementToStatementList(PsiElement, PyStatementList, boolean) method removed
Use
com.jetbrains.python.refactoring.PyRefactoringUtil.addElementToStatementList(PsiElement, PyStatementList, boolean)
instead- com.jetbrains.python.psi.search.PyProjectScopeBuilder.excludeSdkTestsScope(Project) method removed
Use
com.jetbrains.python.psi.search.PySearchUtilBase.excludeSdkTestsScope(Project)
instead.- icons.PythonIcons.Python.PropertySetter field removed
Use
icons.PythonPsiApiIcons.PropertySetter
instead.- icons.PythonIcons.Python.PropertyGetter field removed
Use
icons.PythonPsiApiIcons.PropertyGetter
instead.- PARSE.expected.colon property removed from resource bundle com.jetbrains.python.PyBundle
Use
com.jetbrains.python.PyPsiBundle
instead.- PARSE.expected.expression property removed from resource bundle com.jetbrains.python.PyBundle
Use
com.jetbrains.python.PyPsiBundle
instead.
2019.2
IntelliJ Platform 2019.2
- Constructor injection referring to extension points not supported
Obtain reference to extension points via
(Project)ExtensionPointName.findExtension()
in your constructor instead.- com.intellij.openapi.components.BaseState.map$default(BaseState, Map, int, Object) method removed
Use
com.intellij.openapi.components.BaseState.map()
instead.- org.nustaq package removed
fast-serialization library was removed, please use
com.intellij.serialization.ObjectSerializer
instead.- java.org.java_websocket package removed
Java-WebSocket library was removed, bundle it with your plugin instead.
- com.intellij.ui.layout.Cell.invoke$default(Cell, JComponent, CCFlags[], int, GrowPolicy, String, int, Object) method parameter type changed
The signature of this function has been seriously changed without the possibility to keep the old function. Change invocations and overriding of that function according to new parameters and recompile the code.
- com.intellij.ui.layout.Row.label$default(Row, String, int, UIUtil.ComponentStyle, UIUtil.FontColor, boolean, int, Object) method removed
This method has been pulled up to the base class
Cell
; since it has default parameters, it's a binary breaking change in Kotlin. Recompile your code to pick up the new signature.- com.yourkit package removed
YourKit library has been extracted into the separate plugin, which is not bundled in all IDEs by default. YourKit library is a library for profiling IDE, and its util classes shouldn't be used for general purposes. Instead of
com.yourkit.util.Strings
please useorg.apache.commons.lang.StringUtils
. Instead ofcom.yourkit.util.ArrayUtil
please useorg.apache.commons.lang.ArrayUtils
.- org.jetbrains.intellij.build.ProductProperties.yourkitAgentBinariesDirectoryPath field removed
Please bundle performanceTesting plugin in case you would like to bundle YourKit profiler within your IDE.
- org.jetbrains.intellij.build.ProductProperties.enableYourkitAgentInEAP field removed
Please bundle performanceTesting plugin in case you would like to bundle YourKit profiler within your IDE.
- com.intellij.extapi.psi.PsiElementBase class removed
Please use
com.intellij.psi.impl.PsiElementBase
or one of its descendants as a base class for PSI elements, e.g.com.intellij.extapi.psi.ASTWrapperPsiElement
, as suggested in Custom Language Support Tutorial.- com.intellij.extapi.psi.MetadataPsiElementBase class removed
Please use different base class for PSI elements.
- com.intellij.ide.actions.SearchAgainAction class now extends com.intellij.openapi.editor.actionSystem.EditorAction and inherits its final method actionPerformed
Please use the
com.intellij.editorActionHandler
extension point to register a different handler for the action.- com.intellij.ide.actions.SearchBackAction class now extends com.intellij.openapi.editor.actionSystem.EditorAction and inherits its final method actionPerformed
Please use the
com.intellij.editorActionHandler
extension point to register a different handler for the action.- com.intellij.lexer.RestartableLexer.getRestartableState() method removed
Please use
com.intellij.lexer.RestartableLexer.isRestartableState(int state)
instead.- com.intellij.lexer.RestartableLexer.isRestartableState(int state) abstract method added
Implement method in
RestartableLexer
implementations.- com.intellij.lexer.RestartableLexer.start(CharSequence buffer, int startOffset, int endOffset, int initialState, TokenIterator tokenIterator) abstract method added
Implement method in
RestartableLexer
implementations.
2019.1
IntelliJ Platform 2019.1
- kotlinx.coroutines.experimental package removed
Bundled Kotlin library is updated to 1.3, so the plugins must migrate to the stable versions of coroutines.
- com.intellij.openapi.vcs.impl.ProjectLevelVcsManagerImpl(Project, FileStatusManager, FileIndexFacade, ProjectManager, DefaultVcsRootPolicy, VcsFileListenerContextHelper) constructor removed
Use
com.intellij.openapi.vcs.impl.ProjectLevelVcsManagerImpl.<init>(Project, FileStatusManager, FileIndexFacade, ProjectManager, DefaultVcsRootPolicy)
.- com.intellij.injected.editor.DocumentWindow.injectedToHost(int, boolean) abstract method added
Implement the method in
DocumentWindow
implementations.- git4idea.rebase.GitCommitEditingAction.actionPerformed(AnActionEvent) method marked final
Implement
actionPerformedAfterChecks
instead ofactionPerformed
.- git4idea.rebase.GitCommitEditingAction.actionPerformedAfterChecks(AnActionEvent) abstract method added
Implement
actionPerformedAfterChecks
instead ofactionPerformed
.- com.intellij.util.lang.UrlClassLoader.loadPlatformLibrary method removed
Use
com.intellij.util.loader.NativeLibraryLoader.loadPlatformLibrary
instead.- com.intellij.openapi.util.KeyedExtensionCollector.getExtensions() method marked final
Remove custom implementation.
DataGrip and Database Tools Plugin 2019.1
- com.intellij.sql.psi.SqlTokens.SQL_IDENT field type changed from com.intellij.sql.psi.impl.SqlTokenType to com.intellij.sql.psi.SqlTokenType
In most of the cases, it's enough to recompile the code. It may also be needed to check that the code doesn't rely on the field's type.
Kotlin Plugin API 1.3
- org.jetbrains.kotlin.KtNodeTypes.BOOLEAN_CONSTANT field type changed from org.jetbrains.kotlin.KtNodeType to com.intellij.psi.tree.IElementType
Field type has been generalized. In most of the cases, it's enough to recompile the code of the plugin.
- org.jetbrains.kotlin.KtNodeTypes.CHARACTER_CONSTANT field type changed from org.jetbrains.kotlin.KtNodeType to com.intellij.psi.tree.IElementType
Field type has been generalized. In most of the cases, it's enough to recompile the code of the plugin.
- org.jetbrains.kotlin.KtNodeTypes.FLOAT_CONSTANT field type changed from org.jetbrains.kotlin.KtNodeType to com.intellij.psi.tree.IElementType
Field type has been generalized. In most of the cases, it's enough to recompile the code of the plugin.
- org.jetbrains.kotlin.KtNodeTypes.INTEGER_CONSTANT field type changed from org.jetbrains.kotlin.KtNodeType to com.intellij.psi.tree.IElementType
Field type has been generalized. In most of the cases, it's enough to recompile the code of the plugin.
- org.jetbrains.kotlin.KtNodeTypes.STRING_TEMPLATE field type changed from org.jetbrains.kotlin.KtNodeType to com.intellij.psi.tree.IElementType
Field type has been generalized. In most of the cases, it's enough to recompile the code of the plugin.