intellij-sdk-code-samples/reference_guide/api_changes_list_2024.md
Ilya Kirillov 6faac20b57
Document the breaking API changes related to the use of Kotlin's internal compiler API (#1221)
* Document the breaking API changes related to the use of Kotlin's internal compiler API

* fixup! Document the breaking API changes related to the use of Kotlin's internal compiler API

* fixup! Document the breaking API changes related to the use of Kotlin's internal compiler API
2024-02-15 16:19:58 +01:00

13 KiB

Incompatible Changes in IntelliJ Platform and Plugins API 2024.*

List of known Breaking API Changes in 2024.*

2024.1

IntelliJ Platform 2024.2

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.
Method com.intellij.psi.util.PsiTreeUtilKt.getFirstLeaf(PsiElement) renamed to com.intellij.psi.util.PsiTreeUtilKt.firstLeaf(PsiElement)
Update code usages.
Method com.intellij.psi.util.PsiTreeUtilKt.getLastLeaf(PsiElement) renamed to com.intellij.psi.util.PsiTreeUtilKt.lastLeaf(PsiElement)
Update code usages.
Method com.intellij.psi.util.PsiTreeUtilKt.getChildLeafs(PsiElement) renamed to com.intellij.psi.util.PsiTreeUtilKt.childLeafs(PsiElement)
Update code usages.
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.

Java Plugin 2024.1

com.intellij.lang.properties.RemovePropertyLocalFix class removed
Use com.intellij.codeInsight.daemon.impl.quickfix.DeleteElementFix instead.
com.intellij.psi.util.PsiUtil#isLanguageLevel10OrHigher() method removed
It's recommended to use a new method com.intellij.psi.util.PsiUtil#isAvailable() instead to check whether a particular feature is available, rather than to check against a language level. If you still need an explicit language level check, you may use PsiUtil.getLanguageLevel(element).isAtLeast(level).
com.intellij.psi.util.PsiUtil#isLanguageLevel11OrHigher() method removed
It's recommended to use a new method com.intellij.psi.util.PsiUtil#isAvailable() instead to check whether a particular feature is available, rather than to check against a language level. If you still need an explicit language level check, you may use PsiUtil.getLanguageLevel(element).isAtLeast(level).
com.intellij.psi.util.PsiUtil#isLanguageLevel14OrHigher() method removed
It's recommended to use a new method com.intellij.psi.util.PsiUtil#isAvailable() instead to check whether a particular feature is available, rather than to check against a language level. If you still need an explicit language level check, you may use PsiUtil.getLanguageLevel(element).isAtLeast(level).
com.intellij.psi.util.PsiUtil#isLanguageLevel16OrHigher() method removed
It's recommended to use a new method com.intellij.psi.util.PsiUtil#isAvailable() instead to check whether a particular feature is available, rather than to check against a language level. If you still need an explicit language level check, you may use PsiUtil.getLanguageLevel(element).isAtLeast(level).
com.intellij.psi.util.PsiUtil#isLanguageLevel17OrHigher() method removed
It's recommended to use a new method com.intellij.psi.util.PsiUtil#isAvailable() instead to check whether a particular feature is available, rather than to check against a language level. If you still need an explicit language level check, you may use PsiUtil.getLanguageLevel(element).isAtLeast(level).

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

org.jetbrains.kotlin.ir.visitors.IrElementVisitor.visitReturnableBlock(returnableBlock: IrReturnableBlock, data: D) abstract method added

org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitInlinedFunctionBlock(inlinedFunctionBlock: IrInlinedFunctionBlock) abstract method added

org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitInlinedFunctionBlock(inlinedFunctionBlock: IrInlinedFunctionBlock, data: Nothing?) abstract method added

org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitReturnableBlock(returnableBlock: IrReturnableBlock) abstract method added

org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitReturnableBlock(retunrableBlock: IrReturnableBlock, data: Nothing?) abstract method added

org.jetbrains.kotlin.fir.expressions.FirConstExpression class renamed org.jetbrains.kotlin.fir.expressions.FirLiteralExpression

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

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)