intellij-sdk-code-samples/reference_guide/api_changes_list_2024.md
2024-03-22 10:32:19 +01:00

20 KiB

Incompatible Changes in IntelliJ Platform and Plugins API 2024.*

List of known Breaking API Changes in 2024.*

2024.2

IntelliJ Platform 2024.2

org.apache.sanselan.util package removed
org.apache.sanselan.util.IOUtils compatibility shim is obsolete; instead, please use JRE methods or org.apache.commons.io.IOUtils.

2024.1

IntelliJ Platform 2024.1

com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages, List<PsiElement> elements) abstract method added
Use instead of com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages) and com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages, PsiElement primaryElement).
com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages) method removed
Use com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages, List<PsiElement> elements) instead.
com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages, PsiElement primaryElement) method removed
Use com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages, List<PsiElement> elements) instead.
com.jetbrains.commandInterface.commandLine.psi.CommandLineFile class moved to package com.intellij.commandInterface.commandLine.psi
Update code usages.
com.jetbrains.commandInterface.commandLine.CommandLineLanguage class moved to package com.intellij.commandInterface.commandLine
Update code usages.
com.jetbrains.commandInterface.commandLine.psi.CommandLineArgument class moved to package com.intellij.commandInterface.commandLine.psi
Update code usages.
com.jetbrains.commandInterface.commandLine.psi.CommandLineOption class moved to package com.intellij.commandInterface.commandLine.psi
Update code usages.
com.intellij.application.options.editor.CodeFoldingConfigurable.applyCodeFoldingSettingsChanges() method removed
Use top-level method CodeFoldingConfigurableKt.applyCodeFoldingSettingsChanges instead.
com.intellij.ide.bookmark.providers.LineBookmarkProvider.Companion class removed
Use com.intellij.ide.bookmark.providers.LineBookmarkProvider.Util instead.
com.intellij.execution.process.mediator.util package removed
The sole extension method Deferred<T>.blockingGet() contained in this package is an anti-pattern, and was not supposed to be exposed in the first place. The process mediator and the elevation service are now product modules, and no longer part of the platform.
com.intellij.vcs.log.VcsLogFileHistoryHandler.getSupportedVcs() abstract method added
Must be implemented.
com.intellij.vcs.log.VcsLogFileHistoryHandler.getHistoryFast(root: VirtualFile, filePath: FilePath, hash: Hash?, filters: VcsLogFilterCollection, commitCount: Int) abstract method added
Parameter filters: VcsLogFilterCollection was added to provide filtering capabilities to file history. Implement com.intellij.vcs.log.VcsLogFileHistoryHandler.getSupportedFilters to specify which filters are supported by this extension (currently, branch filter, revision filter and range filter are available).
com.intellij.vcs.log.VcsLogFileHistoryHandler.collectHistory(root: VirtualFile, filePath: FilePath, hash: Hash?, filters: VcsLogFilterCollection, consumer) abstract method added
Parameter filters: VcsLogFilterCollection was added to provide filtering capabilities to file history. Implement com.intellij.vcs.log.VcsLogFileHistoryHandler.getSupportedFilters to specify which filters are supported by this extension (currently, branch filter, revision filter and range filter are available).
org.apache.tools package removed
Please provide all necessary libraries in your plugin distribution.
com.intellij.openapi.projectRoots.impl.ProjectJdkImpl.readExternal(Element, ProjectJdkTable) method removed
Use com.intellij.openapi.projectRoots.impl.ProjectJdkImpl.readExternal(Element, Function<String, SdkTypeId>) instead.
com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil.createSdk(Collection<Sdk>, String, SdkType, SdkAdditionalData, String) method return type changed from ProjectJdkImpl to Sdk
Update code usages.
com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil.createSdk(Collection<Sdk>, VirtualFile, SdkType, SdkAdditionalData, String) method return type changed from ProjectJdkImpl to Sdk
Update code usages.
Class com.intellij.diff.editor.DiffVirtualFile now extends com.intellij.diff.editor.DiffViewerVirtualFile and inherits its abstract method com.intellij.diff.editor.DiffViewerVirtualFile.createViewer(Project)
Update code usages.
com.intellij.diff.tools.combined.CombinedDiffVirtualFile.getSourceId() method removed
Update code usages.
com.intellij.diff.tools.combined.CombinedDiffModel interface removed
Use com.intellij.diff.tools.combined.CombinedDiffModel class instead.
com.intellij.diff.tools.combined.CombinedDiffVirtualFile.createViewer(Project) abstract method added
Must be implemented.
com.intellij.openapi.util.io.NioPathUtil.isAncestor(Path, Path, boolean) method removed
Use Path.startsWith() instead.
com.intellij.util.CachedValueBase.setData(CachedValueBase.Data) abstract method added
Must be implemented.
com.intellij.util.CachedValueBase.getRawData() abstract method added
Must be implemented.
Visibility of class com.intellij.util.CachedValuesFactory changed from public to internal
The class is not supposed to be used directly.
com.intellij.ui.popup.ActionPopupStep.performAction(AnAction, InputEvent) method parameter type changed from AnAction to ActionItem
Use com.intellij.ui.popup.ActionPopupStep.performActionItem(ActionItem, InputEvent) instead.
com.intellij.openapi.actionSystem.AnAction.getTemplateText() method marked final
Use AnAction.getTemplatePresentation().setText() instead.
com.intellij.openapi.actionSystem.ActionGroup.isPopup() method marked final
Use ActionGroup.getTemplatePresentation().setPopupGroup(boolean) instead.
com.intellij.webcore.packaging.InstalledPackagesPanel.myInstallButton field removed
Use InstalledPackagesPanel.myInstallEnabled instead.

UML Plugin 2024.1

com.intellij.uml.core.actions.ShowDiagramBase.findProviders(AnActionEvent, DiagramProvider, BiFunction) method removed
Use com.intellij.uml.core.actions.ShowDiagramBase.findProviders(DiagramProvider<?>, BiFunction<? super DiagramProvider<?>,? super DataContext,java.lang.Object>, DataContext) instead.

Java Plugin 2024.1

com.intellij.lang.properties.RemovePropertyLocalFix class removed
Use com.intellij.codeInsight.daemon.impl.quickfix.DeleteElementFix instead.

Django Plugin 2024.1

Package com.jetbrains.jinja2 renamed to com.intellij.jinja
Update code usages.

Restructured Text Plugin 2024.1

com.jetbrains.rest.RestLanguage class moved to package com.intellij.python.reStructuredText
Update code usages.

GitHub Plugin 2024.1

org.jetbrains.plugins.github.pullrequest.comment.GHPRDiffReviewSupport class removed
Migrated to MVVM.
org.jetbrains.plugins.github.pullrequest.comment.GHPRDiffReviewSupport.Companion class removed
Migrated to MVVM.
org.jetbrains.plugins.github.pullrequest.action.GHPRActionKeys.getPULL_REQUEST_DATA_PROVIDER() method removed
Migrated to MVVM, hidden implementation details.

Kotlin Plugin 2024.1

org.jetbrains.kotlin.ir.visitors.IrElementVisitor.visitInlinedFunctionBlock(inlinedFunctionBlock: IrInlinedFunctionBlock, data: D) abstract method added
Update code usages.
org.jetbrains.kotlin.ir.visitors.IrElementVisitor.visitReturnableBlock(returnableBlock: IrReturnableBlock, data: D) abstract method added
Update code usages.
org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitInlinedFunctionBlock(inlinedFunctionBlock: IrInlinedFunctionBlock) abstract method added
Update code usages.
org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitInlinedFunctionBlock(inlinedFunctionBlock: IrInlinedFunctionBlock, data: Nothing?) abstract method added
Update code usages.
org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitReturnableBlock(returnableBlock: IrReturnableBlock) abstract method added
Update code usages.
org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitReturnableBlock(retunrableBlock: IrReturnableBlock, data: Nothing?) abstract method added
Update code usages.
org.jetbrains.kotlin.fir.expressions.FirConstExpression class renamed org.jetbrains.kotlin.fir.expressions.FirLiteralExpression
Update code usages.
org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin.DELEGATE class removed
org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin.Companion.DELEGATE should be used instead.
org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin.DELEGATED_MEMBER class removed
org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin.Companion.DELEGATED_MEMBER should be used instead.
org.jetbrains.kotlin.config.JvmDefaultMode.DEFAULT field removed
Use org.jetbrains.kotlin.config.JvmDefaultMode.DISABLE.
Method org.jetbrains.kotlin.backend.common.lower.LocalDeclarationsLoweringKt.getParentsWithSelf(IrDeclaration) renamed to org.jetbrains.kotlin.ir.util.IrUtilsKt.getParentsWithSelf
Update code usages.
org.jetbrains.kotlin.daemon.common.CompileService.Companion.getNO_SESSION() method removed
Use org.jetbrains.kotlin.daemon.common.CompileService.NO_SESSION const instead.
Class org.jetbrains.kotlin.ir.declarations.IrDeclarationOriginImpl made final
Create a new IrDeclarationOrigin by delegation. See a3b55cf758/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrDeclarationOrigin.kt (L20).
org.jetbrains.kotlin.idea.refactoring.introduce.extractFunction.ExtractKotlinFunctionHandlerKt class removed
Use com.intellij.lang.refactoring.RefactoringSupportProvider.getExtractMethodHandler instead to invoke Kotlin extract function refactoring

Maven Plugin 2024.1

org.jetbrains.idea.maven.indices.MavenIndex.getUpdateTimestamp() method removed
Use org.jetbrains.idea.maven.indices.MavenIndexImpl.getUpdateTimestamp() instead. MavenIndex is an obsolete interface now with MavenIndexImpl as the only implementation, consider using MavenGAVIndex to get information about available Maven GAV coordinates, or MavenSearchIndex to search Maven artifacts by content.
org.jetbrains.idea.maven.indices.MavenIndex.getFailureMessage() method removed
Use org.jetbrains.idea.maven.indices.MavenIndexImpl.getFailureMessage() instead. MavenIndex is an obsolete interface now with MavenIndexImpl as the only implementation, consider using MavenGAVIndex to get information about available Maven GAV coordinates, or MavenSearchIndex to search Maven artifacts by content.
org.jetbrains.idea.maven.indices.MavenIndex.getRepositoryPathOrUrl() method removed
Use org.jetbrains.idea.maven.indices.MavenRepositoryIndex.getRepository().getUrl() instead. Also, MavenRepositoryInfo.getKind() could be used to distinguish between local and remote repo.
org.jetbrains.idea.maven.indices.MavenIndicesManager.scheduleUpdateContent(List<MavenIndex>, boolean) method removed
Use org.jetbrains.idea.maven.indices.searcher.MavenLuceneIndexer.update(List<MavenRepositoryInfo>, Boolean) to update content for lucene indices. You should not care of GAV indices update.
org.jetbrains.idea.maven.indices.MavenIndicesManager.scheduleUpdateIndicesList(Consumer<MavenIndex>) method removed
Use org.jetbrains.idea.maven.indices.searcher.MavenIndicesManager.scheduleUpdateIndicesList() to update an indices list for a specific project. To get all search indices for specific project use MavenSystemIndicesManager.getClassIndexForRepository(), you can get a list of all repositories with MavenIndexUtils.getAllRepositories(Project).

Database Plugin 2024.1

com.intellij.database.datagrid.DataGrid.getLocalFilterState() abstract method added
Only recompilation is needed for classes that implement DataGrid and delegate calls to an actual DataGrid implementation.
com.intellij.database.datagrid.DataGrid.getColumnAttributes() abstract method added
Only recompilation is needed for classes that implement DataGrid and delegate calls to an actual DataGrid implementation.
com.intellij.sql.psi.SqlTableExpression.getSqlType() method removed
Use getDasType() instead

HTTP Client Plugin 2024.1

com.intellij.httpClient.actions.generation.RequestUrlContextInfo(requestContextData: RequestContextData) constructor parameter removed
Use com.intellij.httpClient.actions.generation.RequestBody and com.intellij.httpClient.actions.generation.HttpRequestUrlPathInfo.Companion.create() to describe a request body that will be coomputed lazily during the corresponding request generation.

Markdown Plugin 2024.1

org.intellij.plugins.markdown.ui.split package removed
Update code usages.
org.intellij.plugins.markdown.ui.split.SplitTextEditorProvider class removed
Use com.intellij.openapi.fileEditor.TextEditorWithPreviewProvider instead.

Python Plugin 2024.1

com.jetbrains.extensions.ModuleExt class moved to package com.jetbrains.python.extensions
Update code usages.
com.jetbrains.extensions.QualifiedNameExt class moved to package com.jetbrains.python.extensions
Update code usages.
com.jetbrains.extensions.python.PyCallExpressionExt class moved to package com.jetbrains.python.extensions.python
Update code usages.
com.jetbrains.extensions.python.FileChooserDescriptorExtKt class moved to package com.jetbrains.python.extensions
Update code usages.
com.jetbrains.python.module.PythonModuleBuilder class moved to package com.intellij.python.community.plugin.java.facet
Update code usages.
com.jetbrains.python.facet package removed
Private package is no longer available as an API.
com.jetbrains.python.debugger.remote package removed
Private package is no longer available as an API.
com.jetbrains.django.util.DjangoUtil class removed
Private class is no longer available as an API.
com.jetbrains.django.testRunner package removed
Private package is no longer available as an API.

JavaScript Plugin 2024.1

com.intellij.lang.javascript.documentation.JSDocumentationProvider.generateDoc(PsiElement, PsiElement) method marked final
Override com.intellij.lang.javascript.documentation.JSDocumentationProvider.generateDoc(PsiElement, PsiElement, Ref<String>) instead

Rd Framework 2024.1

com.jetbrains.rd.framework.IMarshaller.DefaultImpls.getId(IMarshaller) method removed
Due to RdId becoming a value class, the getId method is removed at runtime, causing unresolved method invocations. Use the method that returns long in Java and recompile the Kotlin code.
com.jetbrains.rd.framework.RdId.write(AbstractBuffer) method removed
Due to RdId becoming a value class, the getId method is removed at runtime, causing unresolved method invocations. Use AbstractBuffer.writeLong(long) method in Java and recompile the Kotlin code.
org.digma.intellij.plugin.rider.protocol.LensPerObjectId.getRdid() method removed
Due to RdId becoming a value class, the getId method is removed at runtime, causing unresolved method invocations. Use the method that returns long in Java and recompile the Kotlin code.
com.jetbrains.rd.framework.RdId.Companion.read(AbstractBuffer) method removed
Due to RdId becoming a value class, the getId method is removed at runtime, causing unresolved method invocations. Use AbstractBuffer.readLong() method in Java and recompile the Kotlin code.
com.jetbrains.rd.framework.base.RdBindableBaseKt.withId(RdBindableBase, RdId) method removed
Due to RdId becoming a value class, the getId method is removed at runtime, causing unresolved method invocations. Use withId(RdBindableBase, long) method in Java and recompile the Kotlin code.