Incompatible Changes in IntelliJ Platform and Plugins API 2022.*
Please see Verifying Plugin Compatibility on how to use Plugin Verifier and IDE inspections to check such problems.
Early Access Program (EAP) releases of upcoming versions are available here.
2022.3
IntelliJ Platform 2022.3
com.intellij.openapi.externalSystem.dependency.analyzer.DependencyAnalyzerExtension.isApplicable(ProjectSystemId)abstract method addedMust be implemented.
com.intellij.openapi.externalSystem.dependency.analyzer.DependencyAnalyzerExtension.createContributor(Project, Disposable)method parameterProjectSystemIdremovedAdjust your code.
com.intellij.openapi.externalSystem.dependency.analyzer.DependencyAnalyzerExtension.createContributor(Project, Disposable)method return type changed fromDependencyAnalyzerContributor?toDependencyAnalyzerContributorImplement
isApplicable()instead.com.intellij.openapi.editor.EditorCopyPasteHelper.getSelectionTransferable(Editor editor, EditorCopyPasteHelper.CopyPasteOptions options)abstract method addedMust be implemented instead of and preferred over
com.intellij.openapi.editor.EditorCopyPasteHelper.copySelectionToClipboard(Editor)which now delegates to the new method.com.intellij.codeInsight.template.TemplateContextType.EP_NAMEfield removedUse
com.intellij.codeInsight.template.impl.TemplateContextTypesto getTemplateContextTypeextensions.com.intellij.ide.actions.searcheverywhere.FoundItemDescriptor(I, int, int)constructor removedUse
FoundItemDescriptor(I, int)instead.
Database Plugin 2022.3
com.intellij.database.dataSource.url.TypesRegistry.ParamEditorclass removedUse
com.intellij.database.dataSource.url.TypeDescriptor.ParamEditorinstead.com.intellij.database.dataSource.url.TypesRegistry.BaseTypeDescriptor.createFieldImpl(String caption, String configuration, DataInterchange interchange)abstract method addedMust be implemented.
com.intellij.database.psi.DbDataSourceImpl.getDelegate()method return type changed fromDatabaseSystemtoRawDataSourcePrefer
com.intellij.database.psi.DbDataSource.getDelegateDataSource().com.intellij.database.psi.DbPsiFacadeImpl.createDataSourceWrapperElement(DasDataSource, DataSourceManager)method parameter type changed fromDasDataSourcetoRawDataSourceAvoid manually wrapping data sources.
com.intellij.database.vfs.DatabaseElementVirtualFileImpl.setBusy(boolean)method removedThat method was an internal method.
com.intellij.database.util.TreePatternNode.Group(ObjectKind, TreePatternNode[], TreePatternNode)constructor removedDo not manipulate TreePatternNodes. Use
TreePatternUtilsto manipulateTreePatterns.com.intellij.database.util.TreePatternNode.NegativeNaming(ObjectName[])constructor removedDo not manipulate TreePatternNodes. Use
TreePatternUtilsto manipulateTreePatterns.com.intellij.database.dataSource.DataSourceConfigurable.getDataSource()method return type changed fromDasDataSourcetoRawDataSourceStricter generic bound.
TextMate Plugin 2022.3
org.jetbrains.plugins.textmate.language.preferences.PreferencesRegistryclass now interfaceConstruct and mutate the
org.jetbrains.plugins.textmate.language.preferences.PreferencesRegistryImplinstead.org.jetbrains.plugins.textmate.language.preferences.PreferencesRegistry.fillFromPList(CharSequence, Plist)method removedUse
org.jetbrains.plugins.textmate.language.preferences.PreferencesRegistryImpl.fillFromPList(CharSequence, Plist)instead.org.jetbrains.plugins.textmate.language.preferences.PreferencesRegistry.clear()method removedUse
org.jetbrains.plugins.textmate.language.preferences.PreferencesRegistryImpl.clear()instead.org.jetbrains.plugins.textmate.language.preferences.PreferencesRegistry()constructor removedInstantiate
org.jetbrains.plugins.textmate.language.preferences.PreferencesRegistryImplinstead.org.jetbrains.plugins.textmate.language.preferences.ShellVariablesRegistryclass now interfaceConstruct and mutate the
org.jetbrains.plugins.textmate.language.preferences.ShellVariablesRegistryImplinstead.org.jetbrains.plugins.textmate.language.preferences.ShellVariablesRegistry.fillVariablesFromPlist(CharSequence, Plist)method removedUse
org.jetbrains.plugins.textmate.language.preferences.ShellVariablesRegistryImpl.fillVariablesFromPlist(CharSequence, Plist)instead.org.jetbrains.plugins.textmate.language.preferences.ShellVariablesRegistry.clear()method removedUse
org.jetbrains.plugins.textmate.language.preferences.ShellVariablesRegistryImpl.clear()instead.org.jetbrains.plugins.textmate.language.preferences.ShellVariablesRegistry()constructor removedInstantiate
org.jetbrains.plugins.textmate.language.preferences.ShellVariablesRegistryImplinstead.org.jetbrains.plugins.textmate.language.preferences.SnippetsRegistryclass now interfaceConstruct and mutate the
org.jetbrains.plugins.textmate.language.preferences.SnippetsRegistryImplinstead.org.jetbrains.plugins.textmate.language.preferences.SnippetsRegistry.register(TextMateSnippet)method removedUse
org.jetbrains.plugins.textmate.language.preferences.SnippetsRegistryImpl.register(TextMateSnippet)instead.org.jetbrains.plugins.textmate.language.preferences.SnippetsRegistry.clear()method removedUse
org.jetbrains.plugins.textmate.language.preferences.SnippetsRegistryImpl.clear()instead.org.jetbrains.plugins.textmate.language.preferences.SnippetsRegistry()constructor removedInstantiate
org.jetbrains.plugins.textmate.language.preferences.SnippetsRegistryImpl()instead.
HTTP Client Plugin 2022.3
com.intellij.httpClient.http.request.HttpRequestVariableSubstitutorclass now interfaceUse
com.intellij.httpClient.http.request.HttpRequestVariableSubstitutorImpl.create(Project, HttpRequestEnvironment)for constructing instances.
JavaScript Plugin 2022.3
com.intellij.lang.javascript.buildTools.webpack.WebPackConfigManagerclass moved to packagecom.intellij.webpackUse
com.intellij.webpack.WebpackConfigManagerinstead.com.intellij.lang.javascript.buildTools.webpack.WebPackConfigManager.Companionclass moved to packagecom.intellij.webpackUse
com.intellij.webpack.WebpackConfigManager.Companioninstead.
Microservices Plugin 2022.3
com.intellij.microservices.url.inlay.UrlPathInlayAction.isAvailable(file: PsiFile, urlPathContext: UrlPathContext)method parameter type changed fromcom.intellij.microservices.url.references.UrlPathContexttocom.intellij.microservices.url.inlay.UrlPathInlayHintUse
com.intellij.microservices.url.inlay.UrlPathInlayHint.getContextto obtain correspondingUrlPathContextinstance.
Remote Development Gateway Plugin 2022.3
com.jetbrains.gateway.ssh.SshMultistagePanelContext.getSshConfig()method removedUse
com.jetbrains.gateway.ssh.SshMultistagePanelContext.getConfig()instead.com.jetbrains.gateway.ssh.SshMultistagePanelContext.setSshConfig(SshConfig)method removedUse
com.jetbrains.gateway.ssh.SshMultistagePanelContext.setConfig(SshConfig)instead.
YAML Plugin 2022.3
- org.jetbrains.yaml.YAMLParserDefinition no longer implements
org.jetbrains.yaml.YAMLElementTypes. Use
org.jetbrains.yaml.YAMLElementTypesfields directly.
Terraform Plugin 2022.3
Top level packages of Terraform org.intellij.plugins.hcl and org.intellij.plugins.hil moved to single org.intellij.terraform.
2022.2
IntelliJ Platform 2022.2
com.intellij.openapi.actionSystem.TypeSafeDataProviderclass removedUse
com.intellij.openapi.actionSystem.DataProviderclass instead.com.intellij.openapi.actionSystem.DataSinkclass removedRemoved along with
com.intellij.openapi.actionSystem.TypeSafeDataProvider.com.intellij.openapi.vcs.changes.ui.ChangesBrowserclass removedUse
com.intellij.openapi.vcs.changes.ui.ChangesBrowserBaseorcom.intellij.openapi.vcs.changes.ui.SimpleChangesBrowserinstead.com.intellij.openapi.vcs.changes.ui.ChangesBrowser.MyUseCaseclass removedRemoved along with
com.intellij.openapi.vcs.changes.ui.ChangesBrowser.com.intellij.openapi.vcs.changes.ui.ChangesTreeListclass removedUse
com.intellij.openapi.vcs.changes.ui.ChangesTreeorcom.intellij.openapi.vcs.changes.ui.ChangesTreeImplinstead.com.intellij.ide.IdeEventQueue.unsafeNonblockingExecute(Runnable)method removedMethod does not make sense anymore, please see JBR-4328.
com.intellij.vcs.log.VcsLogHighlighter.getStyle(int, VcsShortCommitDetails, boolean)method removedUse
com.intellij.vcs.log.VcsLogHighlighter.getStyle(int, VcsShortCommitDetails, int, boolean)instead.com.intellij.AbstractBundle.getResourceBundle(java.lang.String, java.lang.ClassLoader)method removedUse
com.intellij.DynamicBundle.getResourceBundle(java.lang.ClassLoader, java.lang.String)instead
Java Plugin 2022.2
com.intellij.codeInspection.javaDoc.JavaDocLocalInspectionclass removedUse
com.intellij.codeInspection.javaDoc.JavadocDeclarationInspection.ADDITIONAL_TAGSfield instead ofJavaDocLocalInspection.myAdditionalJavadocTags.
Plugin DevKit Plugin 2022.2
icons.DevkitIconsclass renamed toorg.jetbrains.idea.devkit.DevKitIconsUse
org.jetbrains.idea.devkit.DevKitIconsinstead.icons.DevkitIcons.Gutterclass renamed toorg.jetbrains.idea.devkit.DevKitIcons.GutterUse
org.jetbrains.idea.devkit.DevKitIcons.Gutterinstead.
Collaboration Tools 2022.2
com.intellij.collaboration.auth.ui.AccountsListModelBase.notifyCredentialsChanged(A account)method visibility changed from protected to privateMethod hidden for better encapsulation.
com.intellij.collaboration.auth.ui.AccountsPanelFactory.INSTANCEfield removedFactory is now a factory.
com.intellij.collaboration.auth.ui.LoadingAccountsDetailsProvider.DetailsLoadingResultclass removedBetter API introduced in the form of
com.intellij.collaboration.auth.ui.AccountsDetailsLoader.com.intellij.collaboration.auth.ui.LoadingAccountsDetailsProviderclass removedBetter API introduced in the form of
com.intellij.collaboration.auth.ui.AccountsDetailsLoader.com.intellij.collaboration.ui.codereview.avatar.CachingAvatarIconsProviderclass renamed tocom.intellij.collaboration.ui.codereview.avatar.CachingCircleImageIconsProviderIcon provider implementation changes to async.
GitHub 2022.2
org.jetbrains.plugins.github.api.GithubApiRequestExecutorManager.getExecutor(GithubAccount)method return type changed fromorg.jetbrains.plugins.github.api.GithubApiRequestExecutor.WithTokenAuthtoorg.jetbrains.plugins.github.api.GithubApiRequestExecutorHidden implementation details.
org.jetbrains.plugins.github.api.GithubApiRequestExecutorManager.getExecutor(GithubAccount, Project)method return type changed fromorg.jetbrains.plugins.github.api.GithubApiRequestExecutor.WithTokenAuthtoorg.jetbrains.plugins.github.api.GithubApiRequestExecutorHidden implementation details.
org.jetbrains.plugins.github.api.GithubApiRequestExecutorManager.getExecutor(GithubAccount, JComponent)method return type changed fromorg.jetbrains.plugins.github.api.GithubApiRequestExecutor.WithTokenAuthtoorg.jetbrains.plugins.github.api.GithubApiRequestExecutorHidden implementation details.
Grazie Plugin 2022.2
- Method
com.intellij.grazie.GrazieBundle.message(key, parameters)marked static To shorten Java callers.
Docker Plugin 2022.2
com.intellij.docker.registry.DockerRegistryclass renamed tocom.intellij.docker.registry.DockerRegistryConfigurationPlease update usages.
JavaScript Plugin 2022.2
com.intellij.lang.javascript.buildTools.webpack.WebPackConfigManager.setConfig(WebPackConfig)method moved to the superclassShould be used only in tests (marked with
@TestOnly).com.intellij.lang.javascript.buildTools.webpack.WebPackConfigclass renamed tocom.intellij.lang.javascript.buildTools.bundler.WebBundlerConfigUse
com.intellij.lang.javascript.buildTools.bundler.WebBundlerConfiginstead.com.intellij.lang.javascript.buildTools.webpack.WebPackResolveclass renamed tocom.intellij.lang.javascript.buildTools.bundler.WebBundlerResolveUse
com.intellij.lang.javascript.buildTools.bundler.WebBundlerResolveinstead.com.intellij.lang.javascript.buildTools.webpack.WebPackConfigPathclass removedA regular String class is used instead.
2022.1
IntelliJ Platform 2022.1
org.apache.log4jpackage removedlog4j library removed from IntelliJ Platform, please see this blog post for migration instructions.
org.slf4jpackage removedlog4j library removed from IntelliJ Platform, please see this blog post for migration instructions.
com.intellij.openapi.diagnostic.Log4jBasedLoggerclass removedlog4j library removed from IntelliJ Platform, please see this blog post for migration instructions.
com.intellij.platform.DirectoryProjectConfigurator.configureProject(Project, VirtualFile, Ref<Module>, boolean)marked abstractImplement it instead of removed one.
com.intellij.psi.impl.java.stubs.index.JavaStubIndexKeys.CLASS_FQNfield type changed fromStubIndexKey<Integer, PsiClass>toStubIndexKey<CharSequence, PsiClass>JavaFullClassNameIndexnow takesCharSequenceinstead of itshashCodeto allow specific optimizations.com.intellij.psi.impl.java.stubs.index.JavaFullClassNameIndex.getKeymethod return type changed fromStubIndexKey<Integer, PsiClass>toStubIndexKey<CharSequence, PsiClass>JavaFullClassNameIndexnow takesCharSequenceinstead of itshashCodeto allow specific optimizations.com.intellij.psi.impl.java.stubs.index.JavaFullClassNameIndex.get(Integer, Project, GlobalSearchScope)method parameter type changed fromIntegertoCharSequenceJavaFullClassNameIndexnow takesCharSequenceinstead of itshashCodeto allow specific optimizations.com.jcraft.jschpackage removedJSch library was removed, bundle it with your plugin instead.
com.intellij.diagnostic.DialogAppender.addFilter(Filter)method removedDialogAppendernow implementsjava.util.logging.Handler, usesetFiltermethod if you need to apply a filter.com.intellij.psi.impl.cache.impl.BaseFilterLexerUtil.ScanContentclass removedTodo index is removed from the indexing procedure, use specific
calcIdEntriesorcalcTodoEntriesmethod instead.com.intellij.psi.impl.cache.impl.BaseFilterLexerUtil.scanContent(FileContent, IdAndToDoScannerBasedOnFilterLexer)method removedTodo index is removed from the indexing procedure, use specific
calcIdEntriesorcalcTodoEntriesmethod instead.com.intellij.util.ui.StartupUiUtil.createStyleSheet(String)method removedMethod moved to
com.intellij.util.ui.StyleSheetUtil
Collaboration Tools 2022.1
com.intellij.collaboration.auth.ui.AccountsPanelFactory.accountsPanel(Row, AccountManager, PersistentDefaultAccountHolder, AccountsListModel, AccountsDetailsProvider, Disposable, Icon)method removedSupport for default accounts required a signature change.
Markdown Plugin 2022.1
org.intellij.markdown.parser.constraints.MarkdownConstraints.Companionclass removedSome methods from a companion object were moved to
CommonMarkdownConstraintsand to extension functions onMarkdownConstraints.org.intellij.markdown.parser.constraints.MarkdownConstraints.Companionfield removedSome methods from a companion object were moved to
CommonMarkdownConstraintsand to extension functions onMarkdownConstraints.org.intellij.markdown.parser.constraints.MarkdownConstraintsclass now interfaceUse
CommonMarkdownConstraintsfor default method implementations instead.org.intellij.markdown.parser.markerblocks.providers.AtxHeaderProvider(boolean)constructor parameterbooleanremovedAtxHeaderProvidernow always requires at least one space between#and its content as specified by the CommonMark spec.org.intellij.markdown.html.HtmlGenerator.generateHtml()method removedUse
org.intellij.markdown.html.HtmlGenerator.generateHtml(org.intellij.markdown.html.HtmlGenerator.TagRenderer)instead.org.intellij.markdown.parser.markerblocks.MarkerBlockProvider.Companion.passSmallIndent(CharSequence)method removedUse
org.intellij.markdown.parser.markerblocks.MarkerBlockProvider.Companion.passSmallIndent(CharSequence, Integer)instead.
Database Tools and SQL Plugin 2022.1
com.intellij.database.datagrid.DataProducer.processRequest(DataRequest)method parameter type changed fromDataRequesttoGridDataRequestGridDataRequestis a part of new API for async loading of table data. It's not possible to keep old method with default implementation becauseDataProducerwill no longer have dependency onDataRequest. Plugins need to be recompiled to maintain bytecode compatibility.com.intellij.database.datagrid.DataRequest.RawQueryRequest.afterLastRowAdded(DataRequest.Context, int)method parameter type changed fromDataRequest.ContexttoGridDataRequest.ContextThe signature of the method was changed in the interface
com.intellij.database.datagrid.DataConsumerthat is now a part of new API for async loading of table data. Change the parameter type of the overridden method and recompile plugin to maintain bytecode compatibility.com.intellij.database.datagrid.DataConsumer.addRows(DataRequest.Context, List<DataConsumer.Row>)method parameter type changed fromDataRequest.ContexttoGridDataRequest.ContextThe signature of the method was changed in the interface
com.intellij.database.datagrid.DataConsumerthat is now a part of new API for async loading of table data. Change the parameter type of the overridden method and recompile plugin to maintain bytecode compatibility.com.intellij.database.datagrid.DataConsumer.addRows(DataRequest.Context, List<DataConsumer.Row>)method parameter type changed fromList<DataConsumer.Row>toList<? extends GridRow>The signature of the method was changed in the interface
com.intellij.database.datagrid.DataConsumerthat is now a part of new API for async loading of table data. Change the parameter type of the overridden method and recompile plugin to maintain bytecode compatibility.com.intellij.database.extractors.ObjectFormatter.getPlainValue(Object, DataConsumer.Column, Dbms)method removedMethod was removed because we refactor table editor API. It will not depend on Dbms anymore. Please use
ObjectFormatter.objectToStringinstead.com.intellij.database.DatabaseDataKeys.DATA_SOURCE_KEYfield removedDatabaseDataKeysno longer extendsDatabaseDataKeysCorebecauseDatabaseDataKeyswas moved to a separate module for table editor.DATA_SOURCE_KEYnow has to be accessed directly viaDatabaseDataKeysCore.com.intellij.database.extractors.ObjectFormatterclass now interfaceMethod was removed because we refactor table editor API. New API will allow to use table editor in other products and fully customize it.