IntelliJ Platform Plugin SDK Help

Internal API Migration

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

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

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

IntelliJ Platform

Internal API

Replacement

AnAction.applyTextOverride()

Setting the Override-Text Element

ApplicationLoadListener

See Application Startup

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 Logging

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

Last modified: 13 March 2024