Please 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.
Changes from API marked with @Deprecated(forRemoval=true)
or any of ApiStatus
@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.
Java version must be set depending on the target platform version.
Java 21
Java 17
The Gradle plugin must be chosen depending on the target platform version.
Recommended IntelliJ Platform Gradle Plugin (2.x)
Requires Gradle IntelliJ Plugin (1.x) (Obsolete) 1.10.1+
Please see updated Threading Model.
commons-lang2 library is going to be removed, a temporary compatibility layer (marked with @Deprecated(forRemoval = true)
to highlight usages) is bundled. Please consider migrating to either commons-lang3 or commons-text libraries and bundle them with your plugin. Library commons-collections is going to be removed.
Bundle it explicitly with your plugin.
com.intellij.codeInsight.intention.BaseElementAtCaretIntentionAction.isAvailable
method Editor
parameter marked @NotNull
This may break source-compatibility with inheritors written in Kotlin if they declare it as nullable.
com.intellij.codeInsight.intention.BaseElementAtCaretIntentionAction.invoke
method Editor
parameter marked @NotNull
This may break source-compatibility with inheritors written in Kotlin if they declare it as nullable.
com.intellij.openapi.actionSystem.ex.ActionUtil.showDumbModeWarning(Project, AnActionEvent[])
method removed
Use showDumbModeWarning(Project project, AnAction action, AnActionEvent @NotNull ... events)
instead.
com.intellij.profiler.eventtrace
package removed
Update code usages.
org.jetbrains.plugins.gradle.service.project.GradleProjectResolverUtil.buildDependencies(ProjectResolverContext, Map, Map, DataNode, Collection, DataNode)
method parameter type changed from Map<String, String>
to ArtifactMappingService
Update usages of this method. Change parameter artifactsMap
value to an ArtifactMappingService
instance. It can be obtained from ProjectResolverContext
, or created in-place using the MapBasedArtifactMappingService
.
org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.CONFIGURATION_ARTIFACTS
field removed
Related mapping information is no longer accessible using this key. Artifacts mapping data is now stored in the instance of the ArtifactMappingService
and can be obtained via org.jetbrains.plugins.gradle.service.project.ProjectResolverContext#getArtifactsMap()
.
com.intellij.ide.plugins.enums.PluginsGroupType.FEATURED
enum renamed to com.intellij.ide.plugins.enums.PluginsGroupType.STAFF_PICKS
Use com.intellij.ide.plugins.enums.PluginsGroupType.STAFF_PICKS
instead.
com.intellij.ide.plugins.newui.SearchWords.ORGANIZATION
enum renamed to com.intellij.ide.plugins.newui.SearchWords.VENDOR
Use com.intellij.ide.plugins.newui.SearchWords.VENDOR
instead.
com.intellij.execution.console.ConsoleHistoryCopyHandler.PROMPT_LENGTH_MARKER
field removed
Use com.intellij.execution.console.ConsoleHistoryCopyHandlerKt#PROMPT_LENGTH_MARKER
instead.
com.intellij.collaboration.ui.codereview.action.CodeReviewCheckoutRemoteBranchAction
class removed
Action moved to a view model.
com.intellij.collaboration.ui.codereview.details.CodeReviewDetailsBranchComponentFactory.create(CoroutineScope, CodeReviewBranchesViewModel, AnAction, DataContext)
method removed
Action moved to a view model.
com.intellij.collaboration.ui.codereview.diff.viewer.DiffEditorUtilKt
class removed
Moved to com.intellij.collaboration.ui.codereview.editor.EditorComponentInlaysUtilKt.controlInlaysIn
.
com.intellij.collaboration.ui.toolwindow.ReviewListTabComponentDescriptor
class removed
Descriptor removed in favour of tab type com.intellij.collaboration.ui.toolwindow.ReviewTab
.
com.intellij.collaboration.ui.toolwindow.ReviewTabsController
class removed
Controller reworked to viewmodel com.intellij.collaboration.ui.toolwindow.ReviewToolwindowProjectViewModel
.
com.intellij.collaboration.ui.toolwindow.ReviewToolwindowDataKeys.getREVIEW_TABS_CONTROLLER()
method removed
Controller reworked to viewmodel com.intellij.collaboration.ui.toolwindow.ReviewToolwindowProjectViewModel
.
com.intellij.collaboration.ui.toolwindow.ReviewToolwindowProjectContext
class removed
Context reworked to viewmodel com.intellij.collaboration.ui.toolwindow.ReviewToolwindowProjectViewModel
.
com.intellij.collaboration.ui.toolwindow.ReviewToolwindowViewModel.getProjectVm()
method return type changed from SharedFlow<C>
to SharedFlow<PVM>
Context reworked to viewmodel com.intellij.collaboration.ui.toolwindow.ReviewToolwindowProjectViewModel
.
com.intellij.collaboration.ui.toolwindow.ReviewTabsComponentFactory.createReviewListComponent(CoroutineScope, PVM)
abstract method added
Context reworked to viewmodel com.intellij.collaboration.ui.toolwindow.ReviewToolwindowProjectViewModel
.
com.intellij.collaboration.ui.toolwindow.ReviewTabsComponentFactory.createTabComponent(CoroutineScope, PVM, TVM)
abstract method added
Context reworked to viewmodel com.intellij.collaboration.ui.toolwindow.ReviewToolwindowProjectViewModel
.
com.intellij.collaboration.ui.toolwindow.ReviewToolwindowTabsManagerKt.manageReviewToolwindowTabs(CoroutineScope, ToolWindow, ReviewToolwindowViewModel, ReviewTabsController, ReviewTabsComponentFactory, String)
method removed
Added a tab viewmodel type.
com.intellij.collaboration.ui.codereview.timeline.TimelineDiffComponentFactory.createDiffComponent(Project, EditorFactory, PatchHunk, Pair, Pair)
method removed
Coroutine scope was added to track editor lifetime.
com.intellij.collaboration.ui.codereview.details.model.CodeReviewChangesViewModelBase
class removed
Incorrect EDT-reliant implementation removed.
com.intellij.collaboration.async.CoroutineUtilKt.DisposingScope(Disposable, CoroutineContext)
method removed
Use com.intellij.collaboration.async.CoroutineUtilKt.disposingScope(CoroutineContext)
instead.
com.intellij.collaboration.ui.codereview.details.model.CodeReviewChangesViewModel.getReviewCommits()
method return type changed from Flow
to SharedFlow
Concrete type usage forced to ensure correct behavior
com.intellij.collaboration.ui.codereview.details.model.CodeReviewChangesViewModel.getSelectedCommit()
method return type changed from Flow
to SharedFlow
Concrete type usage forced to ensure correct behavior
com.intellij.collaboration.ui.codereview.details.model.CodeReviewChangesViewModel.getSelectedCommitIndex()
method return type changed from Flow
to SharedFlow
Concrete type usage forced to ensure correct behavior
com.intellij.collaboration.auth.ui.login.LoginTokenGenerator.generateToken(String)
method return type changed from String
to void
Removed unused return value
com.intellij.collaboration.auth.ui.login.TokenLoginDialog(Project, Component, LoginModel, String, DialogPanelSupplier)
constructor parameter type changed from () -> DialogPanel
to CoroutineScope.() -> DialogPanel
Allow using dialog scope in dialog panel
com.intellij.collaboration.ui.codereview.list.search.ChooserPopupUtil.showAsyncChooserPopup(RelativePoint, Flow<List<T>>, Mapper, ListCellRenderer, PopupConfig)
method parameter type changed from Flow<List<T>>
to Flow<Result<List<T>>>
Handle list loading errors inside the popup
com.intellij.collaboration.ui.codereview.list.search.ChooserPopupUtil.showAsyncChooserPopup(RelativePoint, Flow<List<T>>, Presenter, PopupConfig)
method parameter type changed from Flow<List<T>>
to Flow<Result<List<T>>>
Handle list loading errors inside the popup
com.siyeh.ipp.base.Intention
class removed
As a part of migration to new experimental ModCommand
API, the class was removed completely. It's a part of implementation module and was never intended to be inherited by external plugins. Consider implementing LocalInspectionTool
directly.
com.intellij.codeInsight.TailTypes
class renamed to com.intellij.codeInsight.JavaTailTypes
Update code usages.
com.intellij.unscramble.ThreadDumpParser
class moved to package com.intellij.threadDumpParser
Update code usages.
com.intellij.lang.javascript.buildTools.npm.PackageJsonUtil.createPackageJson(PsiDirectory, boolean)
method removed
Use com.intellij.lang.javascript.buildTools.npm.PackageJsonFileTemplate.create(PsiDirectory, boolean, Consumer<PsiFile>)
instead.
com.intellij.openapi.externalSystem.service.ui.command.line.CompletionTableInfo.completionInfo
replaced by suspend function CompletionTableInfo.collectCompletionInfo
Implement the new function to support async completion collecting.
com.intellij.openapi.externalSystem.service.ui.command.line.CompletionTableInfo.tableCompletionInfo
replaced by suspend function CompletionTableInfo.collectTableCompletionInfo
Implement the new function to support async completion collecting.
com.intellij.openapi.externalSystem.service.ui.completion.TextCompletionField.getCompletionVariants
replaced by property TextCompletionField.completionCollector
Implement the new function to support async completion collecting.
com.intellij.openapi.externalSystem.service.execution.configuration.SettingsFragmentsContainer
class renamed to com.intellij.openapi.externalSystem.service.execution.configuration.fragments.SettingsEditorFragmentContainer
Use new run configuration fragment builders.
com.intellij.openapi.externalSystem.service.execution.configuration.SettingsEditorLabeledComponent
class moved to package com.intellij.openapi.externalSystem.service.execution.configuration.fragments
Use the new run configuration fragment builders.
ExternalSystemRunConfigurationUtil
file changed from C
to (Disposable) -> C
Use the new run configuration fragment builders.
ExternalSystemRunConfigurationUtil
file moved to SettingsEditorFragmentBuilders
and ExternalSystemRunConfigurationFragmentBuilders
files
Use the new run configuration fragment builders.
org.jetbrains.kotlin.idea.actions.JavaToKotlinAction.Companion
class renamed to org.jetbrains.kotlin.idea.actions.JavaToKotlinAction.Handler
In order to not load additional code eagerly on action instantiation.
org.jetbrains.kotlin.idea.compiler.configuration.KotlinIdePluginVersion.Companion
class removed
Now, the Kotlin plugin version does not include a compiler version, so the class is unnecessary. Use com.intellij.openapi.application.ApplicationInfo
to get the IntelliJ version.
org.jetbrains.kotlin.idea.compiler.configuration.KotlinIdePluginVersion
class removed
Now, the Kotlin plugin version does not include a compiler version, so the class is unnecessary. Use com.intellij.openapi.application.ApplicationInfo
to get the IntelliJ version.
org.intellij.plugins.markdown.editor.images
package removed
Use org.intellij.plugins.markdown.images
from intellij.markdown.images
module.
org.intellij.plugins.markdown.lang.psi.MarkdownPsiElementFactory.createHtmlBlockWithImage(Project, MarkdownImageData)
method removed
Use org.intellij.plugins.markdown.images.editor.ImagePsiElementFactory.createHtmlBlockWithImage
instead.
org.intellij.plugins.markdown.lang.psi.MarkdownPsiElementFactory.createHtmlImageTag(Project, MarkdownImageData)
method removed
Use org.intellij.plugins.markdown.images.editor.ImagePsiElementFactory.createHtmlImageTag
instead.
org.intellij.plugins.markdown.lang.psi.MarkdownPsiElementFactory.createImage(Project, String, String, String)
method removed
Use org.intellij.plugins.markdown.images.editor.ImagePsiElementFactory.createImage
.
action.org.intellij.plugins.markdown.ui.actions.styling.InsertImageAction.insert.popup.text
property removed from resource bundle messages.MarkdownBundle
Use org.intellij.plugins.markdown.images.MarkdownImagesBundle
instead.
markdown.configure.image.dialog.browse.image.title
property removed from resource bundle messages.MarkdownBundle
Use org.intellij.plugins.markdown.images.MarkdownImagesBundle
instead.
markdown.configure.image.dialog.convert.to.html.label
property removed from resource bundle messages.MarkdownBundle
Use org.intellij.plugins.markdown.images.MarkdownImagesBundle
instead.
markdown.configure.image.dialog.description.label
property removed from resource bundle messages.MarkdownBundle
Use org.intellij.plugins.markdown.images.MarkdownImagesBundle
instead.
markdown.configure.image.dialog.height.label
property removed from resource bundle messages.MarkdownBundle
Use org.intellij.plugins.markdown.images.MarkdownImagesBundle
instead.
markdown.configure.image.dialog.path.label
property removed from resource bundle messages.MarkdownBundle
Use org.intellij.plugins.markdown.images.MarkdownImagesBundle
instead.
markdown.configure.image.dialog.screen.reader.text.panel.title
property removed from resource bundle messages.MarkdownBundle
Use org.intellij.plugins.markdown.images.MarkdownImagesBundle
instead.
markdown.configure.image.dialog.title.label
property removed from resource bundle messages.MarkdownBundle
Use org.intellij.plugins.markdown.images.MarkdownImagesBundle
instead.
markdown.configure.image.dialog.width.label
property removed from resource bundle messages.MarkdownBundle
Use org.intellij.plugins.markdown.images.MarkdownImagesBundle
instead.
markdown.insert.image.dialog.title
property removed from resource bundle messages.MarkdownBundle
Use org.intellij.plugins.markdown.images.MarkdownImagesBundle
instead.
org.jetbrains.plugins.notebooks.jupyter.variables
package removed
It is now part of separate Jupyter plugin.
com.jetbrains.python.psi.PyClass.getPropertiesInherited(TypeEvalContext)
abstract method added
Should implement this method.
com.intellij.database.datagrid.DataGrid.getName(ModelIndex<GridColumn>)
method removed
Only recompilation is needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.datagrid.DataGrid.setDisplayType(ModelIndex<GridColumn>, DisplayType)
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.getDisplayType(ModelIndex<GridColumn>)
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.getPureDisplayType(ModelIndex<GridColumn>)
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.setBinaryDisplayType(ModelIndex<GridColumn>, BinaryDisplayType)
method removed
Use com.intellij.database.datagrid.DataGrid.setDisplayType(ModelIndex<GridColumn>, DisplayType)
instead.
com.intellij.database.datagrid.DataGrid.getBinaryDisplayType(ModelIndex<GridColumn>)
method removed
Use com.intellij.database.datagrid.DataGrid.getDisplayType(ModelIndex<GridColumn>)
instead.
com.intellij.database.datagrid.DataGrid.getPureBinaryDisplayType(ModelIndex<GridColumn>)
method removed
Use com.intellij.database.datagrid.DataGrid.getPureDisplayType(ModelIndex<GridColumn>)
instead.
com.intellij.packageChecker.maven.MavenSharedDependenciesModel
class renamed to com.intellij.packageChecker.java.BuildSystemDependenciesModelBase
Renamed to a more correct and generic name.
com.intellij.openapi.actionSystem.AnActionEvent.getInputEvent()
method return type changed from InputEvent
to @Nullable InputEvent
This may break source-compatibility with inheritors written in Kotlin.
displayName
/key
for Configurable
To improve performance, provide either attribute for com.intellij.applicationConfigurable
extension point or com.intellij.projectConfigurable
extension point (see Settings Guide).
com.intellij.remote.RemoteProcess.setWindowSize(int, int)
abstract method added
Should implement this method.
com.intellij.database.dataSource.DataSourceStorageCore
class removed
Use com.intellij.database.dataSource.DataSourceStorage
instead.
com.intellij.database.dataSource.DataSourceStorageUtil
class removed
Use com.intellij.database.dataSource.DataSourceStorage
instead.
com.intellij.database.dataSource.DataSourceStorageCore$Listener
class renamed to com.intellij.database.dataSource.DataSourceStorage$Listener
Core
class removed from hierarchy.
com.intellij.database.datagrid.CoreGrid.showCell(ModelIndex<Row>, ModelIndex<Column>)
method parameter type changed from ModelIndex<Row>
to int
ModelIndex
class is used to reference data in the table model. Row indexes in the table model start with 0, even when the table is scrolled to page N>1. Parameter type was changed to int
to indicate that it is an absolute index in the DB table.
com.intellij.database.datagrid.DataGrid.getName(ModelIndex<GridColumn>)
abstract method added
Only recompilation is needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
org.jetbrains.idea.maven.server.MavenEmbedderWrapper.customizeForResolve(MavenConsole, MavenProgressIndicator)
method removed
Use resolveProject(Collection, MavenExplicitProfiles, ProgressIndicator, MavenSyncConsole, MavenConsole, MavenWorkspaceMap, boolean)
instead.
org.jetbrains.idea.maven.server.MavenEmbedderWrapper.execute(VirtualFile, Collection, Collection, List)
method removed
Use executeGoal(Collection, String, MavenProgressIndicator, MavenConsole)
instead.
com.intellij.velocity.psi.VtlVariable.getPsiType()
method return type changed from com.intellij.psi.PsiType
to com.intellij.velocity.psi.VtlVariableType
Use com.intellij.velocity.java.reference.VtlPsiType
to wrap Java types to return result from implementations.
com.intellij.jsonpath
It is now part of separate JSONPath plugin. Add dependency on com.intellij.jsonpath
to use its API.
Please bundle and use echosvg library instead.
com.intellij.grazie.text.RuleGroup.Companion.getLITERALS() method removed
Replaced by constant field LITERALS
.
com.intellij.ui.treeStructure.SimpleNode.doUpdate()
method removed
It was replaced by doUpdate(PresentationData)
which should now only modify the state of its parameter.
com.intellij.ide.ui.laf.darcula.ui.DarculaProgressBarUI.getFinishedColor()
method removed
Use getFinishedColor(JComponent c)
overload instead.
com.intellij.openapi.externalSystem.view.ExternalSystemNode.setNameAndTooltip(String, String)
method removed
Use setNameAndTooltip(PresentationData, String, String)
overload instead.
com.intellij.openapi.externalSystem.view.ExternalSystemNode.setNameAndTooltip(String, String, String)
method removed
Use setNameAndTooltip(PresentationData, String, String, String)
overload instead.
com.intellij.openapi.externalSystem.view.ExternalSystemNode.setNameAndTooltip(String, String, SimpleTextAttributes)
method removed
Use setNameAndTooltip(PresentationData, String, String, SimpleTextAttributes)
overload instead.
com.intellij.ssh.config.unified.SshConfigManager.register(boolean, String, String, String, String, AuthType, String, String, boolean, boolean, String, String)
method parameter String
removed
Local port is the part of the tunnel configuration, not SSH settings.
com.intellij.openapi.fileEditor.impl.HTMLEditorProvider.Companion.getAFFINITY_KEY()
method removed
It was an accidentally exposed internal API. Please use HTMLEditorProvider.openEditor()
methods, or implement your own file editor provider.
com.intellij.execution.RunnerAndConfigurationSettings.setFocusToolWindowBeforeRun(boolean)
abstract method added
The interface is not intended to be implemented in external plugins.
com.intellij.execution.RunnerAndConfigurationSettings.getFocusToolWindowBeforeRun()
abstract method added
The interface is not intended to be implemented in external plugins.
com.intellij.database.dataSource.url.TypeDescriptor.ParamEditor
class moved to package com.intellij.database.dataSource.url
The inner interface was moved to upper level.
com.intellij.database.dataSource.url.TypesRegistry.BaseTypeDescriptor
class moved to package com.intellij.database.dataSource.url.ui
UI extracted from TypesRegistry
to TypesRegistryUi
. Use com.intellij.database.urlParamEditorProvider
extension point to register parameter descriptor, use com.intellij.database.urlParamEditorUiProvider
extension point to register parameter editor descriptor.
com.intellij.database.datagrid.DataGrid.setAnonymousColumnName(String)
method removed
Only recompilation needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.datagrid.DataGrid.setResultViewAdditionalRowsCount(int)
method removed
Only recompilation needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.datagrid.DataGrid.setResultViewAllowMultilineColumnLabels(boolean)
method removed
Only recompilation needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.datagrid.DataGrid.setResultViewPaintHorizontalLines(boolean)
method removed
Only recompilation needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.datagrid.DataGrid.setResultViewShowRowNumbers(boolean)
method removed
Only recompilation needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.datagrid.DataGrid.setResultViewTransparentHeaderBackground(boolean)
method removed
Only recompilation needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.datagrid.DataGrid.setResultViewVisibleRowCount(int)
method removed
Only recompilation needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.datagrid.DataGrid.countSortedColumns()
abstract method added
Only recompilation needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.datagrid.DataGrid.getAppearance()
abstract method added
Only recompilation needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.datagrid.DataGrid.getHoveredRowBackground()
abstract method added
Only recompilation needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.datagrid.DataGrid.getStripeRowBackground()
abstract method added
Only recompilation needed for classes that implement DataGrid
and delegate calls to an actual DataGrid
implementation.
com.intellij.database.plan.ExplainPlanProvider.createRawExplainTask(LocalDataSource dataSource, boolean analyze)
abstract method added
Should implement this method.
com.intellij.lang.javascript.JavascriptParserDefinition.createFile(FileViewProvider)
method return type changed from com.intellij.lang.javascript.psi.JSFile
to com.intellij.psi.PsiFile
Required to support Astro file format.
org.jetbrains.wip.WipVm.initDomains()
method return type changed from void
to org.jetbrains.concurrency.Promise<*>
initDomains()
is now awaitable to make WIP/CDP domains-dependent initialization logic possible.
org.jetbrains.wip.WipVm.ready()
method return type changed from void
to org.jetbrains.concurrency.Promise<*>
ready()
is now awaitable to make WIP/CDP connection-dependent initialization logic possible.
com.jetbrains.gateway.ssh.HighLevelHostAccessor.isPathPresentOnRemote(String, FileSystemItem)
method parameter type changed from String
to com.jetbrains.gateway.ssh.deploy.RemotePath
Using strings instead of paths breaks a lot of things when doing cross-platform development, and is generally not a good idea. Use com.jetbrains.gateway.ssh.HighLevelHostAccessor.makeRemotePath
to prepare a path to pass into any of the methods requiring it.
com.jetbrains.php.config.library.PhpIncludePathManager.getRoots()
method removed
This class no longer handles all paths configured in non-runtime com.jetbrains.php.config.library.PhpLibraryRootProvider
. Paths configured in Include Path Settings are available with PhpIncludePathManager.getIncludePaths()
. All additional paths to use as roots for resolving via PhpIncludePathManager.getAllIncludedRoots()
.
19 March 2025
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4