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.INSTANCEinstead.- com.intellij.codeInsight.TailType.COMMA field removed
Use
com.intellij.codeInsight.lookup.CommaTailType.INSTANCEinstead.- 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.fileTypeextension point instead.- com.intellij.util.containers.ConcurrentHashSet class removed
Use
com.intellij.util.containers.ContainerUtil#newConcurrentSetinstead.- 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.DefaultHostnameVerifierinstead.- 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_KEYinstead.- 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().deletedFilesinstead.- com.intellij.openapi.vcs.VcsVFSListener.myDeletedWithoutConfirmFiles field removed
Use
com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireAllDeletedFiles().deletedWithoutConfirmFilesinstead.- 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.fileTypeto 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-24760in 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.PropertySetterinstead.- icons.PythonIcons.Python.PropertyGetter field removed
Use
icons.PythonPsiApiIcons.PropertyGetterinstead.- PARSE.expected.colon property removed from resource bundle com.jetbrains.python.PyBundle
Use
com.jetbrains.python.PyPsiBundleinstead.- PARSE.expected.expression property removed from resource bundle com.jetbrains.python.PyBundle
Use
com.jetbrains.python.PyPsiBundleinstead.
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.ObjectSerializerinstead.- 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.Stringsplease useorg.apache.commons.lang.StringUtils. Instead ofcom.yourkit.util.ArrayUtilplease 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.PsiElementBaseor 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.editorActionHandlerextension 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.editorActionHandlerextension 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
RestartableLexerimplementations.- com.intellij.lexer.RestartableLexer.start(CharSequence buffer, int startOffset, int endOffset, int initialState, TokenIterator tokenIterator) abstract method added
Implement method in
RestartableLexerimplementations.
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
DocumentWindowimplementations.- git4idea.rebase.GitCommitEditingAction.actionPerformed(AnActionEvent) method marked final
Implement
actionPerformedAfterChecksinstead ofactionPerformed.- git4idea.rebase.GitCommitEditingAction.actionPerformedAfterChecks(AnActionEvent) abstract method added
Implement
actionPerformedAfterChecksinstead ofactionPerformed.- com.intellij.util.lang.UrlClassLoader.loadPlatformLibrary method removed
Use
com.intellij.util.loader.NativeLibraryLoader.loadPlatformLibraryinstead.- 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.