Incompatible Changes in IntelliJ Platform and Plugins API 2019.*
Please see Incompatible API Changes on how to verify compatibility.
2019.3
Changes in 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.EQfield removed- Use
com.intellij.codeInsight.lookup.EqTailType.INSTANCEinstead. com.intellij.codeInsight.TailType.COMMAfield 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.JsonFileTypeFactoryclass removed- Use
com.intellij.fileTypeextension point instead. com.intellij.util.containers.ConcurrentHashSetclass 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_VERIFIERfield 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_KEYfield removed- Use
com.intellij.openapi.vcs.changes.ui.ChangesListView.UNVERSIONED_FILE_PATHS_DATA_KEYinstead. com.intellij.openapi.vcs.VcsVFSListener.myAddedFilesfield removed- Use
com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireAddedFiles()instead. com.intellij.openapi.vcs.VcsVFSListener.myDeletedFilesfield removed- Use
com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireAllDeletedFiles().deletedFilesinstead. com.intellij.openapi.vcs.VcsVFSListener.myDeletedWithoutConfirmFilesfield removed- Use
com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireAllDeletedFiles().deletedWithoutConfirmFilesinstead. com.intellij.openapi.vcs.VcsVFSListener.myExceptionsfield 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).
Changes in Java plugin 2019.3
com.intellij.codeInspection.magicConstant.MagicCompletionContributor.getAllowedValues(PsiElement)method return type changed fromcom.intellij.codeInspection.magicConstant.MagicConstantInspection.AllowedValuestocom.intellij.codeInspection.magicConstant.MagicConstantUtils.AllowedValues- Use new type instead.
Changes in 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.
Changes in 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.
Changes in DataGrip and Database Tools plugin 2019.3
com.intellij.sql.dialects.mssql.MssqlDialectclass renamed tocom.intellij.sql.dialects.mssql.MsDialect- Do not use SQL dialect classes directly.
com.intellij.sql.dialects.oracle.OracleDialectclass renamed tocom.intellij.sql.dialects.oracle.OraDialect- Do not use SQL dialect classes directly.
com.intellij.sql.dialects.postgres.PostgresDialectclass renamed tocom.intellij.sql.dialects.postgres.PgDialect- Do not use SQL dialect classes directly.
Changes in RubyMine and Ruby plugin 2019.3
org.jetbrains.plugins.ruby.ruby.codeInsight.types.RubyTypeProvider.createTypeBySymbolFromProviders(Symbol symbol, Context context)method parameterContextremoved- This was done as part of
RUBY-24760in order to move to new Context-less approach.
Changes in 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.PropertySetterfield removed- Use
icons.PythonPsiApiIcons.PropertySetterinstead. icons.PythonIcons.Python.PropertyGetterfield removed- Use
icons.PythonPsiApiIcons.PropertyGetterinstead. PARSE.expected.colonproperty removed from resource bundlecom.jetbrains.python.PyBundle- Use
com.jetbrains.python.PyPsiBundleinstead. PARSE.expected.expressionproperty removed from resource bundlecom.jetbrains.python.PyBundle- Use
com.jetbrains.python.PyPsiBundleinstead.
2019.2
Changes in 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.nustaqpackage removed- fast-serialization library was removed, please use
com.intellij.serialization.ObjectSerializerinstead. java.org.java_websocketpackage 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- Signature of this function has been seriously changed without 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.yourkitpackage 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 purpose. 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.yourkitAgentBinariesDirectoryPathfield removed- Please bundle performanceTesting plugin in case you would like to bundle YourKit profiler within your IDE.
org.jetbrains.intellij.build.ProductProperties.enableYourkitAgentInEAPfield removed- Please bundle performanceTesting plugin in case you would like to bundle YourKit profiler within your IDE.
com.intellij.extapi.psi.PsiElementBaseclass 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.MetadataPsiElementBaseclass removed- Please use different base class for PSI elements.
com.intellij.ide.actions.SearchAgainActionclass now extendscom.intellij.openapi.editor.actionSystem.EditorActionand inherits its final methodactionPerformed- Please use the
com.intellij.editorActionHandlerextension point to register a different handler for the action. com.intellij.ide.actions.SearchBackActionclass now extendscom.intellij.openapi.editor.actionSystem.EditorActionand inherits its final methodactionPerformed- 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
Changes in IntelliJ Platform 2019.1
kotlinx.coroutines.experimentalpackage 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.loadPlatformLibrarymethod removed- Use
com.intellij.util.loader.NativeLibraryLoader.loadPlatformLibraryinstead. com.intellij.openapi.util.KeyedExtensionCollector.getExtensions()method marked final- Remove custom implementation.
Changes in DataGrip and Database Tools plugin 2019.1
com.intellij.sql.psi.SqlTokens.SQL_IDENTfield type changed fromcom.intellij.sql.psi.impl.SqlTokenTypetocom.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.
Changes in Kotlin Plugin API 1.3
org.jetbrains.kotlin.KtNodeTypes.BOOLEAN_CONSTANTfield type changed fromorg.jetbrains.kotlin.KtNodeTypetocom.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_CONSTANTfield type changed fromorg.jetbrains.kotlin.KtNodeTypetocom.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_CONSTANTfield type changed fromorg.jetbrains.kotlin.KtNodeTypetocom.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_CONSTANTfield type changed fromorg.jetbrains.kotlin.KtNodeTypetocom.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_TEMPLATEfield type changed fromorg.jetbrains.kotlin.KtNodeTypetocom.intellij.psi.tree.IElementType- Field type has been generalized. In most of the cases, it’s enough to recompile the code of the plugin.
Last modified: 19 February 2020