intellij-sdk-code-samples/reference_guide/api_changes_list_2024.md
Tagir Valeev e10eb8f580
PsiUtil#isLanguageLevelXYZOrHigher (#1217)
* PsiUtil#isLanguageLevelXYZOrHigher

* Update api_changes_list_2024.md
2024-02-14 15:42:36 +01:00

9.7 KiB

Incompatible Changes in IntelliJ Platform and Plugins API 2024.*

List of known Breaking API Changes in 2024.*

2024.1

IntelliJ Platform 2024.1

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).
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.

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.