11 KiB

Internal API Migration

Lists private API annotated with ApiStatus.Internal/IntellijInternalApi and corresponding replacement.

This page lists commonly used API annotated with org.jetbrains.annotations.ApiStatus.Internal or IntellijInternalApi which indicates it is private API and must not be used outside of IntelliJ Platform itself:

Indicates that the annotated element (class, method, field, etc.) must not be considered as a public API. It's made visible to allow usages in other packages of the declaring library, but it must not be used outside of that library. Such elements may be renamed, changed, or removed in future versions.

{title="ApiStatus.Internal Javadoc"}

Such violations are reported from and are highlighted in the IDE using dedicated inspection.

Each entry is mapped to its corresponding Replacement, pointing to the recommended API.

The lists are not complete and will be updated continuously. Please check corresponding code documentation when encountering any API not listed on this page.

In some cases, such documentation might not be available inside the IDE for the current target platform version. Please use Go to file to browse the latest version in the intellij-community GitHub repository instead.

Please use the feedback form at the bottom of this page if you encounter missing or unclear information.

{style="note"}

IntelliJ Platform

Internal API Replacement
AnAction.applyTextOverride()
ApplicationLoadListener See
BuildNumber.currentVersion() Use ApplicationInfo.getBuild()
CompactVirtualFileSet Use VfsUtilCore.createCompactVirtualFileSet()
DefaultPicoContainer Use extension points and services
EdtDataContext See Doc
ExperimentalUI.isNewUI() Use NewUI.isEnabled()
FileTypeIndex.NAME Use static methods in FileTypeIndex directly
IElementType.getDebugName() Override/use IElementType.toString()
IconLoader.CachedImageIcon Use methods exposed in IconLoader
IconLoader.LazyIcon Use IconLoader.createLazy()
IndexingDataKeys See Doc
Module.getModuleFile() See Doc
Module.getModuleFilePath() See Doc
Module.getModuleTypeName() See Doc
ModuleTypeManager.registerModuleType() Use com.intellij.moduleType extension point instead, ModuleType
PathMacros.setMacro() Use com.intellij.pathMacroContributor extension point, PathMacroContributor
PlatformUtils See Doc
PluginClassLoader Cast to PluginAwareClassLoader
PluginManager.getLogger() Use own logger, see
PreloadingActivity Use StartupActivity.Background (docs) with atomic flag to run only once during IDE lifetime
ProjectLibraryTable Use LibraryTablesRegistrar.getLibraryTable()
SVGLoader Use ImageLoader.loadFromResource()
ScrollBarPainter See Doc
UtilKt.targetPresentation() See Doc

Plugins

Database Plugin

Internal API Replacement
DbDataSource.getDelegate() For connection config use DbDataSource.getConnectionConfig(), for LocalDataSource use DbImplUtil.getMaybeLocalDataSource(DasDataSource)

Exceptions

The API listed in this table is currently (or was previously) marked with @ApiStatus.Internal, but its status has changed in the meantime (or will change). Therefore, any reported violations can be disregarded.

Internal API Note
AnAction.setShortcutSet() Made public in 2023.3
AnimatedIcon.ANIMATION_IN_RENDERER_ALLOWED Made public in 2021.3
BaseExpirableExecutor.expireWith() Made public in 2023.2
BundleBase Made public in 2022.1
IdFilter Made public in 2021.2/3
HashingStrategy Made public in 2023.1
JsonCustomStructureViewFactory Made public in 2023.2
RunAnythingCommandLineProvider Made public in 2021.3
SearchEverywhereFoundElementInfo Made public in 2023.3
PhpExpectedFunctionArgument Made public in 2022.1
org.jetbrains.yaml.meta.* YAML Metadata API will be made public in 2023.1