intellij-sdk-code-samples/reference_guide/api_changes_list_2022.md
2022-06-28 14:23:49 +02:00

16 KiB

Please see Incompatible API Changes on how to verify compatibility.

Changes from API marked with @Deprecated(forRemoval=true) or any of org.jetbrains.annotations.ApiStatus @Experimental, @ScheduledForRemoval, or @Internal are not listed here, as incompatible changes are to be expected.

For API annotated with ApiStatus.@Internal, see for more details and replacements.

{type="note"}

Java 17 is required when targeting 2022.2 or later only.

Java 11 is required (blog post) when targeting 2020.3 and later only.

Please make sure to always upgrade gradle-intellij-plugin to the latest version GitHub Release

{type="note"}

Early Access Program (EAP) releases of upcoming versions are available here.

2022.3

IntelliJ Platform 2022.3

2022.2

IntelliJ Platform 2022.2

com.intellij.openapi.actionSystem.TypeSafeDataProvider class removed
Use com.intellij.openapi.actionSystem.DataProvider class instead.
com.intellij.openapi.actionSystem.DataSink class removed
Removed along with com.intellij.openapi.actionSystem.TypeSafeDataProvider.
com.intellij.openapi.vcs.changes.ui.ChangesBrowser class removed
Use com.intellij.openapi.vcs.changes.ui.ChangesBrowserBase or com.intellij.openapi.vcs.changes.ui.SimpleChangesBrowser instead.
com.intellij.openapi.vcs.changes.ui.ChangesBrowser.MyUseCase class removed
Removed along with com.intellij.openapi.vcs.changes.ui.ChangesBrowser.
com.intellij.openapi.vcs.changes.ui.ChangesTreeList class removed
Use com.intellij.openapi.vcs.changes.ui.ChangesTree or com.intellij.openapi.vcs.changes.ui.ChangesTreeImpl instead.
com.intellij.ide.IdeEventQueue.unsafeNonblockingExecute(Runnable) method removed
Method does not make sense anymore, please see JBR-4328.
com.intellij.vcs.log.VcsLogHighlighter.getStyle(int, VcsShortCommitDetails, boolean) method removed
Use com.intellij.vcs.log.VcsLogHighlighter.getStyle(int, VcsShortCommitDetails, int, boolean) instead.

Java Plugin 2022.2

com.intellij.codeInspection.javaDoc.JavaDocLocalInspection class removed
Use com.intellij.codeInspection.javaDoc.JavadocDeclarationInspection.ADDITIONAL_TAGS field instead of JavaDocLocalInspection.myAdditionalJavadocTags.

Plugin DevKit Plugin 2022.2

icons.DevkitIcons class renamed to org.jetbrains.idea.devkit.DevKitIcons
Use org.jetbrains.idea.devkit.DevKitIcons instead.
icons.DevkitIcons.Gutter class renamed to org.jetbrains.idea.devkit.DevKitIcons.Gutter
Use org.jetbrains.idea.devkit.DevKitIcons.Gutter instead.

Collaboration Tools 2022.2

com.intellij.collaboration.auth.ui.AccountsListModelBase.notifyCredentialsChanged(A account) method visibility changed from protected to private
Method hidden for better encapsulation.
com.intellij.collaboration.auth.ui.AccountsPanelFactory.INSTANCE field removed
Factory is now a factory.
com.intellij.collaboration.auth.ui.LoadingAccountsDetailsProvider.DetailsLoadingResult class removed
Better API introduced in the form of com.intellij.collaboration.auth.ui.AccountsDetailsLoader.
com.intellij.collaboration.auth.ui.LoadingAccountsDetailsProvider class removed
Better API introduced in the form of com.intellij.collaboration.auth.ui.AccountsDetailsLoader.
com.intellij.collaboration.ui.codereview.avatar.CachingAvatarIconsProvider class renamed to com.intellij.collaboration.ui.codereview.avatar.CachingCircleImageIconsProvider
Icon provider implementation changes to async.

GitHub 2022.2

org.jetbrains.plugins.github.api.GithubApiRequestExecutorManager.getExecutor(GithubAccount) method return type changed from org.jetbrains.plugins.github.api.GithubApiRequestExecutor.WithTokenAuth to org.jetbrains.plugins.github.api.GithubApiRequestExecutor
Hidden implementation details.
org.jetbrains.plugins.github.api.GithubApiRequestExecutorManager.getExecutor(GithubAccount, Project) method return type changed from org.jetbrains.plugins.github.api.GithubApiRequestExecutor.WithTokenAuth to org.jetbrains.plugins.github.api.GithubApiRequestExecutor
Hidden implementation details.
org.jetbrains.plugins.github.api.GithubApiRequestExecutorManager.getExecutor(GithubAccount, JComponent) method return type changed from org.jetbrains.plugins.github.api.GithubApiRequestExecutor.WithTokenAuth to org.jetbrains.plugins.github.api.GithubApiRequestExecutor
Hidden 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.DockerRegistry class renamed to com.intellij.docker.registry.DockerRegistryConfiguration
Please update usages.

2022.1

IntelliJ Platform 2022.1

org.apache.log4j package removed
log4j library removed from IntelliJ Platform, please see this blog post for migration instructions.
org.slf4j package removed
log4j library removed from IntelliJ Platform, please see this blog post for migration instructions.
com.intellij.openapi.diagnostic.Log4jBasedLogger class removed
log4j library removed from IntelliJ Platform, please see this blog post for migration instructions.
com.intellij.platform.DirectoryProjectConfigurator.configureProject(Project, VirtualFile, Ref<Module>, boolean) marked abstract
Implement it instead of removed one.
com.intellij.psi.impl.java.stubs.index.JavaStubIndexKeys.CLASS_FQN field type changed from StubIndexKey<Integer, PsiClass> to StubIndexKey<CharSequence, PsiClass>
JavaFullClassNameIndex now takes CharSequence instead of its hashCode to allow specific optimizations.
com.intellij.psi.impl.java.stubs.index.JavaFullClassNameIndex.getKey method return type changed from StubIndexKey<Integer, PsiClass> to StubIndexKey<CharSequence, PsiClass>
JavaFullClassNameIndex now takes CharSequence instead of its hashCode to allow specific optimizations.
com.intellij.psi.impl.java.stubs.index.JavaFullClassNameIndex.get(Integer, Project, GlobalSearchScope) method parameter type changed from Integer to CharSequence
JavaFullClassNameIndex now takes CharSequence instead of its hashCode to allow specific optimizations.
com.jcraft.jsch package removed
JSch library was removed, bundle it with your plugin instead.
com.intellij.diagnostic.DialogAppender.addFilter(Filter) method removed
DialogAppender now implements java.util.logging.Handler, use setFilter method if you need to apply a filter.
com.intellij.psi.impl.cache.impl.BaseFilterLexerUtil.ScanContent class removed
Todo index is removed from the indexing procedure, use specific calcIdEntries or calcTodoEntries method instead.
com.intellij.psi.impl.cache.impl.BaseFilterLexerUtil.scanContent(FileContent, IdAndToDoScannerBasedOnFilterLexer) method removed
Todo index is removed from the indexing procedure, use specific calcIdEntries or calcTodoEntries method instead.
com.intellij.util.ui.StartupUiUtil.createStyleSheet(String) method removed
Method 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 removed
Support for default accounts required a signature change.

Markdown Plugin 2022.1

org.intellij.markdown.parser.constraints.MarkdownConstraints.Companion class removed
Some methods from a companion object were moved to CommonMarkdownConstraints and to extension functions on MarkdownConstraints.
org.intellij.markdown.parser.constraints.MarkdownConstraints.Companion field removed
Some methods from a companion object were moved to CommonMarkdownConstraints and to extension functions on MarkdownConstraints.
org.intellij.markdown.parser.constraints.MarkdownConstraints class now interface
Use CommonMarkdownConstraints for default method implementations instead.
org.intellij.markdown.parser.markerblocks.providers.AtxHeaderProvider(boolean) constructor parameter boolean removed
AtxHeaderProvider now always requires at least one space between # and its content as specified by the CommonMark spec.
org.intellij.markdown.html.HtmlGenerator.generateHtml() method removed
Use org.intellij.markdown.html.HtmlGenerator.generateHtml(org.intellij.markdown.html.HtmlGenerator.TagRenderer) instead.
org.intellij.markdown.parser.markerblocks.MarkerBlockProvider.Companion.passSmallIndent(CharSequence) method removed
Use 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 from DataRequest to GridDataRequest
GridDataRequest is a part of new API for async loading of table data. It's not possible to keep old method with default implementation because DataProducer will no longer have dependency on DataRequest. Plugins need to be recompiled to maintain bytecode compatibility.
com.intellij.database.datagrid.DataRequest.RawQueryRequest.afterLastRowAdded(DataRequest.Context, int) method parameter type changed from DataRequest.Context to GridDataRequest.Context
The signature of the method was changed in the interface com.intellij.database.datagrid.DataConsumer that 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 from DataRequest.Context to GridDataRequest.Context
The signature of the method was changed in the interface com.intellij.database.datagrid.DataConsumer that 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 from List<DataConsumer.Row> to List<? extends GridRow>
The signature of the method was changed in the interface com.intellij.database.datagrid.DataConsumer that 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 removed
Method was removed because we refactor table editor API. It will not depend on Dbms anymore. Please use ObjectFormatter.objectToString instead.
com.intellij.database.DatabaseDataKeys.DATA_SOURCE_KEY field removed
DatabaseDataKeys no longer extends DatabaseDataKeysCore because DatabaseDataKeys was moved to a separate module for table editor. DATA_SOURCE_KEY now has to be accessed directly via DatabaseDataKeysCore.
com.intellij.database.extractors.ObjectFormatter class now interface
Method was removed because we refactor table editor API. New API will allow to use table editor in other products and fully customize it.