Incompatible Changes in IntelliJ Platform and Plugins API 2024.*
Edit pageLast modified: 27 November 2024Please 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.
note
Non-listed changesChanges from API marked with
@Deprecated(forRemoval=true)
or any ofApiStatus
@Experimental
,@ScheduledForRemoval
, or@Internal
are not listed here, as incompatible changes are to be expected.For API annotated with
@ApiStatus.Internal
/@IntellijInternalApi
, see Internal API Migration for more details and replacements.
note
warning
Gradle PluginThe Gradle plugin must be chosen depending on the target platform version.
- 2022.3+
Recommended IntelliJ Platform Gradle Plugin (2.x),
Requires Gradle IntelliJ Plugin (1.x) version 1.10.1+ (current: 1.17.4)
2024.3
IntelliJ Platform 2024.3
com.intellij.psi.stubs.StubElement.getChildrenStubs()
method return type changed fromList<StubElement>
toList<StubElement<?>>
Raw-type changed to a properly parameterized type. This is binary compatible change but may cause compilation errors. In most of the cases, it's enough to add
<?>
at the use site to fix the issue.com.intellij.openapi.actionSystem.impl.MoreActionGroup(boolean, int, DefaultConstructorMarker)
constructor removedUse other constructors instead.
com.intellij.openapi.externalSystem.model.task.event.ExternalSystemStartEventImpl
class renamed tocom.intellij.openapi.externalSystem.model.task.event.ExternalSystemStartEvent
Use new class
com.intellij.openapi.externalSystem.model.task.event.TaskOperationDescriptorImpl
class renamed tocom.intellij.openapi.externalSystem.model.task.event.TaskOperationDescriptor
Use new class
com.intellij.openapi.externalSystem.model.task.event.DefaultOperationResult
class renamed tocom.intellij.openapi.externalSystem.model.task.event.OperationResult
Use new class
com.intellij.openapi.externalSystem.model.task.event.FailureResultImpl
class renamed tocom.intellij.openapi.externalSystem.model.task.event.FailureResult
Use new class
com.intellij.openapi.externalSystem.model.task.event.SkippedResultImpl
class renamed tocom.intellij.openapi.externalSystem.model.task.event.SkippedResult
Use new class
com.intellij.openapi.externalSystem.model.task.event.SuccessResultImpl
class renamed tocom.intellij.openapi.externalSystem.model.task.event.SuccessResult
Use new class
com.intellij.openapi.externalSystem.model.task.event.ExternalSystemStatusEventImpl
class renamed tocom.intellij.openapi.externalSystem.model.task.event.ExternalSystemStatusEvent
Use new class
com.intellij.openapi.externalSystem.model.task.event.FailureImpl
class renamed tocom.intellij.openapi.externalSystem.model.task.event.Failure
Use new class
com.intellij.openapi.externalSystem.model.task.event.ExternalSystemFinishEventImpl
class renamed tocom.intellij.openapi.externalSystem.model.task.event.ExternalSystemFinishEvent
Use new class
JSON Plugin (new) 2024.3
com.intellij.json.JsonElementTypes
class removedAdd an explicit dependency on the newly extracted JSON plugin (
com.intellij.modules.json
) inplugin.xml
.
If the plugin is built against 2024.3+, also addcom.intellij.modules.json
to the bundled plugins in the Gradle build script.com.intellij.json.JsonFileType
class removedAdd an explicit dependency on the newly extracted JSON plugin (
com.intellij.modules.json
) inplugin.xml
.
If the plugin is built against 2024.3+, also addcom.intellij.modules.json
to the bundled plugins in the Gradle build script.com.intellij.json.JsonLanguage
class removedAdd an explicit dependency on the newly extracted JSON plugin (
com.intellij.modules.json
) inplugin.xml
.
If the plugin is built against 2024.3+, also addcom.intellij.modules.json
to the bundled plugins in the Gradle build script.com.intellij.json.JsonParserDefinition
class removedAdd an explicit dependency on the newly extracted JSON plugin (
com.intellij.modules.json
) inplugin.xml
.
If the plugin is built against 2024.3+, also addcom.intellij.modules.json
to the bundled plugins in the Gradle build script.com.intellij.json.JsonTokenType
class removedAdd an explicit dependency on the newly extracted JSON plugin (
com.intellij.modules.json
) inplugin.xml
.
If the plugin is built against 2024.3+, also addcom.intellij.modules.json
to the bundled plugins in the Gradle build script.com.intellij.json
package removedAdd an explicit dependency on the newly extracted JSON plugin (
com.intellij.modules.json
) inplugin.xml
.
If the plugin is built against 2024.3+, also addcom.intellij.modules.json
to the bundled plugins in the Gradle build script.com.intellij.json.codeinsight
package removedAdd an explicit dependency on the newly extracted JSON plugin (
com.intellij.modules.json
) inplugin.xml
.
If the plugin is built against 2024.3+, also addcom.intellij.modules.json
to the bundled plugins in the Gradle build script.com.intellij.json.highlighting
package removedAdd an explicit dependency on the newly extracted JSON plugin (
com.intellij.modules.json
) inplugin.xml
.
If the plugin is built against 2024.3+, also addcom.intellij.modules.json
to the bundled plugins in the Gradle build script.com.intellij.json.psi
package removedAdd an explicit dependency on the newly extracted JSON plugin (
com.intellij.modules.json
) inplugin.xml
.
If the plugin is built against 2024.3+, also addcom.intellij.modules.json
to the bundled plugins in the Gradle build script.com.jetbrains.jsonSchema
package removedAdd an explicit dependency on the newly extracted JSON plugin (
com.intellij.modules.json
) inplugin.xml
.
If the plugin is built against 2024.3+, also addcom.intellij.modules.json
to the bundled plugins in the Gradle build script.
Database Plugin 2024.3
Package Checker 2024.3
HTTP Client Plugin 2024.3
JavaScript Plugin 2024.3
Kotlin Plugin 2024.3
2024.2
IntelliJ Platform 2024.2
Constructor of com.intellij.ui.tabs.TabInfo
requires not-null JComponent
argument.
com.intellij.execution.lineMarker.ExecutorAction.Companion.wrap(RunContextAction, Int)
method removedUse
com.intellij.execution.lineMarker.ExecutorAction.Companion.wrap(AnAction, Executor, Int)
instead.org.apache.sanselan.util
package removedorg.apache.sanselan.util.IOUtils
compatibility shim is obsolete; instead, please use JRE methods ororg.apache.commons.io.IOUtils
.com.intellij.platform.workspace.storage.url.VirtualFileUrlManager.getOrCreateFromUri(String)
method removedUse
com.intellij.platform.workspace.storage.url.VirtualFileUrlManager.getOrCreateFromUrl(String)
instead.
UML Plugin 2024.2
Python Plugin 2024.2
Kotlin Plugin 2024.2
org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirResolveSessionService.getFirResolveSessionNoCaching(module: KtModule)
method removedInternals of Kotlin plugin.
org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider.Companion.getModule(Project, PsiElement, KtModule)
method removedUse
org.jetbrains.kotlin.analysis.api.projectStructure.KaModuleProvider.Companion.getModule(Project, PsiElement, KtModule)
instead.org.jetbrains.kotlin.codegen.state.TypeMappingUtil.getJVM_SUPPRESS_WILDCARDS_ANNOTATION_FQ_NAME
method removedUse
org.jetbrains.kotlin.name.JvmStandardClassIds.getJVM_SUPPRESS_WILDCARDS_ANNOTATION_FQ_NAME
instead.org.jetbrains.kotlin.fir.types.ConeTypeUtilsKt.renderReadableWithFqNames(ConeKotlinType)
method removedInternals of Kotlin compiler.
Database Plugin 2024.2
HTTP Client Plugin 2024.2
Dependency Analysis Plugin 2024.2
2024.1
IntelliJ Platform 2024.1
com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages, List<PsiElement> elements)
abstract method addedUse instead of
com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages)
andcom.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages, PsiElement primaryElement)
.com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages)
method removedUse
com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages, List<PsiElement> elements)
instead.com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages, PsiElement primaryElement)
method removedUse
com.intellij.refactoring.RefactoringHelper.prepareOperation(UsageInfo [] usages, List<PsiElement> elements)
instead.com.jetbrains.commandInterface.commandLine.psi.CommandLineFile
class moved to packagecom.intellij.commandInterface.commandLine.psi
Update code usages.
com.jetbrains.commandInterface.commandLine.CommandLineLanguage
class moved to packagecom.intellij.commandInterface.commandLine
Update code usages.
com.jetbrains.commandInterface.commandLine.psi.CommandLineArgument
class moved to packagecom.intellij.commandInterface.commandLine.psi
Update code usages.
com.jetbrains.commandInterface.commandLine.psi.CommandLineOption
class moved to packagecom.intellij.commandInterface.commandLine.psi
Update code usages.
com.intellij.application.options.editor.CodeFoldingConfigurable.applyCodeFoldingSettingsChanges()
method removedUse top-level method
CodeFoldingConfigurableKt.applyCodeFoldingSettingsChanges
instead.com.intellij.ide.bookmark.providers.LineBookmarkProvider.Companion
class removedUse
com.intellij.ide.bookmark.providers.LineBookmarkProvider.Util
instead.com.intellij.execution.process.mediator.util
package removedThe 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 addedMust be implemented.
com.intellij.vcs.log.VcsLogFileHistoryHandler.getHistoryFast(root: VirtualFile, filePath: FilePath, hash: Hash?, filters: VcsLogFilterCollection, commitCount: Int)
abstract method addedParameter
filters: VcsLogFilterCollection
was added to provide filtering capabilities to file history. Implementcom.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 addedParameter
filters: VcsLogFilterCollection
was added to provide filtering capabilities to file history. Implementcom.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.openapi.projectRoots.impl.ProjectJdkImpl.readExternal(Element, ProjectJdkTable)
method removedUse
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 fromProjectJdkImpl
toSdk
Update code usages.
com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil.createSdk(Collection<Sdk>, VirtualFile, SdkType, SdkAdditionalData, String)
method return type changed fromProjectJdkImpl
toSdk
Update code usages.
- Class
com.intellij.diff.editor.DiffVirtualFile
now extendscom.intellij.diff.editor.DiffViewerVirtualFile
and inherits its abstract methodcom.intellij.diff.editor.DiffViewerVirtualFile.createViewer(Project)
Update code usages.
com.intellij.diff.tools.combined.CombinedDiffVirtualFile.getSourceId()
method removedUpdate code usages.
com.intellij.diff.tools.combined.CombinedDiffModel
interface removedUse
com.intellij.diff.tools.combined.CombinedDiffModel
class instead.com.intellij.diff.tools.combined.CombinedDiffVirtualFile.createViewer(Project)
abstract method addedMust be implemented.
com.intellij.openapi.util.io.NioPathUtil.isAncestor(Path, Path, boolean)
method removedUse
Path.startsWith()
instead.com.intellij.util.CachedValueBase.setData(CachedValueBase.Data)
abstract method addedMust 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 fromAnAction
toActionItem
Use
com.intellij.ui.popup.ActionPopupStep.performActionItem(ActionItem, InputEvent)
instead.com.intellij.openapi.actionSystem.AnAction.getTemplateText()
method marked finalUse
AnAction.getTemplatePresentation().setText()
instead.
UML Plugin 2024.1
com.intellij.uml.core.actions.ShowDiagramBase.findProviders(AnActionEvent, DiagramProvider, BiFunction)
method removedUse
com.intellij.uml.core.actions.ShowDiagramBase.findProviders(DiagramProvider<?>, BiFunction<? super DiagramProvider<?>,? super DataContext,java.lang.Object>, DataContext)
instead.
Java Plugin 2024.1
Django Plugin 2024.1
Restructured Text Plugin 2024.1
GitHub Plugin 2024.1
Kotlin Plugin 2024.1
org.jetbrains.kotlin.ir.visitors.IrElementVisitor.visitInlinedFunctionBlock(inlinedFunctionBlock: IrInlinedFunctionBlock, data: D)
abstract method addedUpdate code usages.
org.jetbrains.kotlin.ir.visitors.IrElementVisitor.visitReturnableBlock(returnableBlock: IrReturnableBlock, data: D)
abstract method addedUpdate code usages.
org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitInlinedFunctionBlock(inlinedFunctionBlock: IrInlinedFunctionBlock)
abstract method addedUpdate code usages.
org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitInlinedFunctionBlock(inlinedFunctionBlock: IrInlinedFunctionBlock, data: Nothing?)
abstract method addedUpdate code usages.
org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitReturnableBlock(returnableBlock: IrReturnableBlock)
abstract method addedUpdate code usages.
org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid.visitReturnableBlock(retunrableBlock: IrReturnableBlock, data: Nothing?)
abstract method addedUpdate code usages.
org.jetbrains.kotlin.fir.expressions.FirConstExpression
class renamedorg.jetbrains.kotlin.fir.expressions.FirLiteralExpression
Update code usages.
org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin.DELEGATE
class removedorg.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin.Companion.DELEGATE
should be used instead.org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin.DELEGATED_MEMBER
class removedorg.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin.Companion.DELEGATED_MEMBER
should be used instead.org.jetbrains.kotlin.config.JvmDefaultMode.DEFAULT
field removedUse
org.jetbrains.kotlin.config.JvmDefaultMode.DISABLE
.- Method
org.jetbrains.kotlin.backend.common.lower.LocalDeclarationsLoweringKt.getParentsWithSelf(IrDeclaration)
renamed toorg.jetbrains.kotlin.ir.util.IrUtilsKt.getParentsWithSelf
Update code usages.
org.jetbrains.kotlin.daemon.common.CompileService.Companion.getNO_SESSION()
method removedUse
org.jetbrains.kotlin.daemon.common.CompileService.NO_SESSION
const instead.
Maven Plugin 2024.1
org.jetbrains.idea.maven.indices.MavenIndex.getUpdateTimestamp()
method removedUse
org.jetbrains.idea.maven.indices.MavenIndexImpl.getUpdateTimestamp()
instead.MavenIndex
is an obsolete interface now withMavenIndexImpl
as the only implementation, consider usingMavenGAVIndex
to get information about available Maven GAV coordinates, orMavenSearchIndex
to search Maven artifacts by content.org.jetbrains.idea.maven.indices.MavenIndex.getFailureMessage()
method removedUse
org.jetbrains.idea.maven.indices.MavenIndexImpl.getFailureMessage()
instead.MavenIndex
is an obsolete interface now withMavenIndexImpl
as the only implementation, consider usingMavenGAVIndex
to get information about available Maven GAV coordinates, orMavenSearchIndex
to search Maven artifacts by content.org.jetbrains.idea.maven.indices.MavenIndex.getRepositoryPathOrUrl()
method removedUse
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 removedUse
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 removedUse
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 useMavenSystemIndicesManager.getClassIndexForRepository()
, you can get a list of all repositories withMavenIndexUtils.getAllRepositories(Project)
.
Database Plugin 2024.1
HTTP Client Plugin 2024.1
com.intellij.httpClient.actions.generation.RequestUrlContextInfo(requestContextData: RequestContextData)
constructor parameter removedUse
com.intellij.httpClient.actions.generation.RequestBody
andcom.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
Python Plugin 2024.1
com.jetbrains.extensions.ModuleExt
class moved to packagecom.jetbrains.python.extensions
Update code usages.
com.jetbrains.extensions.QualifiedNameExt
class moved to packagecom.jetbrains.python.extensions
Update code usages.
com.jetbrains.extensions.python.PyCallExpressionExt
class moved to packagecom.jetbrains.python.extensions.python
Update code usages.
com.jetbrains.extensions.python.FileChooserDescriptorExtKt
class moved to packagecom.jetbrains.python.extensions
Update code usages.
com.jetbrains.python.module.PythonModuleBuilder
class moved to packagecom.intellij.python.community.plugin.java.facet
Update code usages.
JavaScript Plugin 2024.1
Rd Framework 2024.1
com.jetbrains.rd.framework.IMarshaller.DefaultImpls.getId(IMarshaller)
method removedDue to
RdId
becoming a value class, thegetId
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 removedDue to
RdId
becoming a value class, thegetId
method is removed at runtime, causing unresolved method invocations. UseAbstractBuffer.writeLong(long)
method in Java and recompile the Kotlin code.org.digma.intellij.plugin.rider.protocol.LensPerObjectId.getRdid()
method removedDue to
RdId
becoming a value class, thegetId
method is removed at runtime, causing unresolved method invocations. Use the method that returnslong
in Java and recompile the Kotlin code.
Properties Plugin 2024.1
Thanks for your feedback!