# CLion Extension Point and Listener List
Overview of Extension Points and Listeners for CLion.
**Product-Specific Plugin Development**: [CLion](clion.md)
> See [](intellij_platform_extension_point_list.md) for IntelliJ Platform.
149 Extension Points and 45 Listeners
## CLion
### CLion - Listeners
| Topic | Listener |
|-------|----------|
| [`CubeMXManager#TOPIC`](https://jb.gg/ipe/listeners?topics=com.intellij.clion.embedded.stm32cubemx.CubeMXManager.CubeStatusListener) | `CubeStatusListener` |
| [`WestProjectListener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.intellij.clion.west.WestProjectListener) | `WestProjectListener` |
| [`WestConfigListener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.intellij.clion.west.config.WestConfigListener) | `WestConfigListener` |
| [`Listener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.intellij.clion.west.settings.WestSettings.Listener) | `Listener` |
| [`FileSymbolTablesCache#OUT_OF_CODE_BLOCK_TOPIC`](https://jb.gg/ipe/listeners?topics=com.intellij.psi.util.PsiModificationTracker.Listener) ![Project-Level][project-level] | [`Listener`](%gh-ic%/platform/core-api/src/com/intellij/psi/util/PsiModificationTracker.java) |
| [`ConsistencyErrorTopicListener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.intellij.rml.dfa.utils.ConsistencyErrorTopicListener) | `ConsistencyErrorTopicListener` |
| [`CMakeSettingsListener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.cmake.CMakeSettingsListener) | `CMakeSettingsListener` |
| [`Listener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.cmake.python.CMakePythonSdkService.Companion.Listener) | `Listener` |
| [`Listener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.cmake.python.CMakePythonSettingListenerService.Companion.Listener) | `Listener` |
| [`Listener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.cmake.python.CMakePythonSettingsService.Listener) | `Listener` |
| [`CMakeWorkspaceListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.cmake.workspace.CMakeWorkspaceListener) | `CMakeWorkspaceListener` |
| [`CompDBSettingsListener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.compdb.settings.CompDBSettingsListener) | `CompDBSettingsListener` |
| [`CLionExternalBuildManagerListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.execution.external.build.CLionExternalBuildManagerListener) | `CLionExternalBuildManagerListener` |
| [`ClionProjectToolManagerListener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.execution.external.build.ClionProjectToolManagerListener) | `ClionProjectToolManagerListener` |
| [`MakefileBuildTargetsManagerListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.makefile.execution.build.MakefileBuildTargetsManagerListener) | `MakefileBuildTargetsManagerListener` |
| [`MakefileSettingsListener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.makefile.settings.MakefileSettingsListener) | `MakefileSettingsListener` |
| [`CPPToolchainsConfigurable#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.toolchains.CPPToolchainsConfigurable.Listener) | `Listener` |
| [`CPPToolchainsListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.cpp.toolchains.CPPToolchainsListener) | `CPPToolchainsListener` |
| [`CidrBuildListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.execution.build.CidrBuildListener) ![Project-Level][project-level] | `CidrBuildListener` |
| [`CidrHighlighterNotifierService#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.execution.testing.CidrHighlighterNotifierService.LineMarkNotifier) | `LineMarkNotifier` |
| [`CidrTestScopeService#TEST_SCOPE_LISTENER_TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.execution.testing.CidrTestScopeService.TestScopeListener) | `TestScopeListener` |
| [`ExternalWorkspaceListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.external.system.workspace.ExternalWorkspaceListener) | `ExternalWorkspaceListener` |
| [`ClangLanguageServiceProviderListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.daemon.clang.clangd.ClangLanguageServiceProviderListener) | `ClangLanguageServiceProviderListener` |
| [`ClangServerListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.daemon.clang.clangd.lsp.server.ClangServerListener) | `ClangServerListener` |
| [`ClangTelemetryListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.daemon.clang.clangd.lsp.telemetry.ClangTelemetryListener) | `ClangTelemetryListener` |
| [`ClangMemoryUsageWatchDogListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.daemon.clang.clangd.memory.ClangMemoryUsageWatchDogListener) | `ClangMemoryUsageWatchDogListener` |
| [`OCLanguageServiceReparsingPassListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.daemon.clang.clangd.reparsing.OCLanguageServiceReparsingPassListener) | `OCLanguageServiceReparsingPassListener` |
| [`ClangdSettingsListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.daemon.clang.clangd.settings.ClangdSettingsListener) | `ClangdSettingsListener` |
| [`ClangdSettingsListener#TOPIC_UI`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.daemon.clang.clangd.settings.ClangdSettingsListener) | `ClangdSettingsListener` |
| [`CidrInjectionListener#INJECTION_TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.editor.CidrInjectionListener) | `CidrInjectionListener` |
| [`OCInclusionContextListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.preprocessor.OCInclusionContextListener) | `OCInclusionContextListener` |
| [`FileSymbolTableCacheListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.symbols.symtable.FileSymbolTableCacheListener) | `FileSymbolTableCacheListener` |
| [`FileSymbolTablesPackListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.symbols.symtable.FileSymbolTablesPackListener) | `FileSymbolTablesPackListener` |
| [`OCFileSymbolTableListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.symbols.symtable.OCFileSymbolTableListener) | `OCFileSymbolTableListener` |
| [`OCSymbolBuildingListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.symbols.symtable.building.OCSymbolBuildingListener) | `OCSymbolBuildingListener` |
| [`OCWorkspaceListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.lang.workspace.OCWorkspaceListener) | `OCWorkspaceListener` |
| [`Listener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.meson.project.MesonModelManager.Listener) | `Listener` |
| [`MesonSettingsListener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.meson.settings.MesonSettingsListener) | `MesonSettingsListener` |
| [`PackageManagerEventListener.Companion#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.packagemanager.vcpkg.PackageManagerEventListener) | `PackageManagerEventListener` |
| [`CidrRootConfigurationListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.project.CidrRootConfigurationListener) | `CidrRootConfigurationListener` |
| [`CidrWorkspaceInstantaneousStateChangeListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.project.workspace.CidrWorkspaceInstantaneousStateChangeListener) ![Project-Level][project-level] | `CidrWorkspaceInstantaneousStateChangeListener` |
| [`CidrWorkspaceListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.project.workspace.CidrWorkspaceListener) | `CidrWorkspaceListener` |
| [`OCRootsSynchronizerListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.project.workspace.OCRootsSynchronizerListener) | `OCRootsSynchronizerListener` |
| [`RemoteDeploymentListener#TOPIC`](https://jb.gg/ipe/listeners?topics=com.jetbrains.cidr.system.RemoteDeploymentListener) | `RemoteDeploymentListener` |
| [`AllowedModules#INVALIDATION_TOPIC`](https://jb.gg/ipe/listeners?topics=java.lang.Runnable) | `Runnable` |
### CidrDebuggerPlugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `BackendConsoleInjectionHelper` |
| | `CidrCustomDebuggerProvider` |
| | `CidrDebugProcessConfigurator` |
| ![Internal][internal] | `CidrDebuggerMessagesProvider` |
| ![Experimental][experimental] | `CidrDisasmRegisterProvider` |
| | `CidrDebuggerEditorsExtension` |
| | `NatvisFileProvider` |
| | `CidrFrameChildrenContributor` |
| ![Experimental][experimental] | `CidrFullValueEvaluatorProvider` |
| | `CidrImageViewerProvider` |
| | `CidrDebuggerLanguageSupport` |
| | `CidrLineBreakpointFileTypesProvider` |
| | `LocalVariablesFilterHandler` |
| ![Experimental][experimental] | `CidrDebuggerModulesHandler` |
| | `NativeSelfProfilerPathProvider` |
| | `CidrSuspendThreadSelector` |
| ![Non-Dynamic][non-dynamic] | `ValueRendererExtension` |
| ![Non-Dynamic][non-dynamic] | `ValueRendererFactory` |
### CidrExecutionPlugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `CidrBuildConfigurationProvider` |
| | `CidrProjectTaskContextProvider` |
| | `CidrResolveConfigurationProvider` |
| ![Non-Dynamic][non-dynamic] | `CidrRunConfigurationExtensionBase` |
| | `CidrTargetConfigurationHelper` |
| ![Non-Dynamic][non-dynamic] | `CidrTestFrameworkDetector` |
### CidrLangBase.xml
| Extension Point | Implementation |
|-----------------|----------------|
| ![Non-Dynamic][non-dynamic] | `Supplier` |
| ![Non-Dynamic][non-dynamic] | `OCDFAInspectionConfig` |
| | `OCExternalInspections` |
| ![Non-Dynamic][non-dynamic] | `OCFileTypeHelper` |
| ![Internal][internal] | `CidrKnownModuleDetector` |
| ![Non-Dynamic][non-dynamic] | `OCLanguageUtilsBase` |
| ![Non-Dynamic][non-dynamic] | `OCLanguageKindCalculatorHelper` |
| ![Non-Dynamic][non-dynamic] | `OCLanguageKindProvider` |
| ![Non-Dynamic][non-dynamic] | `NavigatableSymbolSearcherBridge` |
| ![Non-Dynamic][non-dynamic] | `OCNewFileLangBackendHandler` |
| ![Non-Dynamic][non-dynamic] | `OCNewFileProjectModelHandlerProvider` |
| | `CidrOwnModuleDetector` |
| ![Non-Dynamic][non-dynamic] | `CidrProjectWizardFilesFormatter` |
| ![Non-Dynamic][non-dynamic] | `Supplier` |
### CidrLangPlugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| ![Non-Dynamic][non-dynamic] | `OCAnnotatorHelper` |
| ![Non-Dynamic][non-dynamic] | `OCAutoImportHelper` |
| ![Non-Dynamic][non-dynamic] | `OCBuildSymbolsVetoExtension` |
| ![Non-Dynamic][non-dynamic] | `PolyglotCallStructureProvider` |
| ![Non-Dynamic][non-dynamic] | `CustomHeaderProvider` |
| ![Non-Dynamic][non-dynamic] | `Doxygen` |
| | `OCExternalResolver` |
| ![Non-Dynamic][non-dynamic] | `FileToBuildSymbolsCollector` |
| ![Non-Dynamic][non-dynamic] | `OCForeignUsagesRenameProcessor` |
| ![Non-Dynamic][non-dynamic] | `OCGroupedFileNaming` |
| ![Non-Dynamic][non-dynamic] | `OCIncludeHelper` |
| ![Non-Dynamic][non-dynamic] | [`HierarchyProvider`](%gh-ic%/platform/lang-api/src/com/intellij/ide/hierarchy/HierarchyProvider.java) |
| ![Non-Dynamic][non-dynamic] | `OCInitialBuildingActivity` |
| ![Non-Dynamic][non-dynamic] | `OCLanguageKindContributor` |
| ![Non-Dynamic][non-dynamic] | `OCLibraryFileResolveConfigurationProvider` |
| ![Non-Dynamic][non-dynamic] | `ModuleCacheBuilderStatisticsCollectorFactory` |
| ![Non-Dynamic][non-dynamic] | `ModuleMapManagerRequestor` |
| ![Non-Dynamic][non-dynamic] | `ModuleMapPlatformTypeProvider` |
| ![Non-Dynamic][non-dynamic] | `ModuleMapRootSerializer` |
| ![Non-Dynamic][non-dynamic] | `ModuleMapSearchRootProvider` |
| ![Non-Dynamic][non-dynamic] | `OCModuleResolver` |
| ![Non-Dynamic][non-dynamic] | `OCAdditionalFileSymbolTableBuilder` |
| ![Non-Dynamic][non-dynamic] | [`QueryExecutor`](%gh-ic%/platform/core-api/src/com/intellij/util/QueryExecutor.java) |
| ![Non-Dynamic][non-dynamic] | `OCInclusionContextLazyGetDefinitionProvider` |
| ![Non-Dynamic][non-dynamic] | `OCResolveRootAndConfigurationProvider` |
| ![Non-Dynamic][non-dynamic] | `OCRenameHandlerExtension` |
| ![Non-Dynamic][non-dynamic] | `OCRenameProcessorExtension` |
| ![Non-Dynamic][non-dynamic] | `OCResourceCompletionProviders` |
| ![Non-Dynamic][non-dynamic] | `OCResourceFilesProvider` |
| ![Non-Dynamic][non-dynamic] | `OCSearchHelper` |
| ![Non-Dynamic][non-dynamic] | `SerializerProvider` |
| ![Non-Dynamic][non-dynamic] | `FileSymbolTableProvider` |
| ![Non-Dynamic][non-dynamic] | `OCTestFramework` |
| ![Non-Dynamic][non-dynamic] | `PolyglotTypeStructureProvider` |
| ![Non-Dynamic][non-dynamic] | `RequiredForCidrSmartMode` |
### CidrProjectModelPlugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| ![Project-Level][project-level] | `AppleFrameworkFilter` |
| ![Non-Dynamic][non-dynamic] | `OCCodeInsightUnavailabilityHighlighter` |
| | `OCCompilerKindProvider` |
| ![Project-Level][project-level] | `OCCompilerResolver` |
| ![Non-Dynamic][non-dynamic] | `OCFileScopeProvider` |
| ![Non-Dynamic][non-dynamic] ![DumbAware][dumb-aware] | `FileWideHighlighter` |
| | `HeadersSearchRootFactory` |
| | `OCResolveConfigurationSelector` |
| | `OCWorkspaceDeserializingVetoCondition` |
| | `OCMsvcPchHelper` |
| ![Non-Dynamic][non-dynamic] | `RunAfterOCWorkspaceIsInitialized` |
| ![Non-Dynamic][non-dynamic] | `RunAfterOCWorkspaceIsLoaded` |
| ![Non-Dynamic][non-dynamic] | `OCSupportedFileChecker` |
| | `OCUnloadedResolveContextsManager` |
| | `OCWorkspaceLoadedChecker` |
| ![Project-Level][project-level] | `CidrCommandLineParser` |
### CidrTestingPlugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `CidrPotentialTestHolderRootsProvider` |
| | `CidrTestIndexContributor` |
### CidrToolchainsPlugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| ![Non-Dynamic][non-dynamic] | `DevEnvironmentChecker` |
### CidrUtilExecutionPlugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `CidrPluginPathMapper` |
### CidrWorkspaceModelCore.xml
| Extension Point | Implementation |
|-----------------|----------------|
| ![Non-Dynamic][non-dynamic] | `CidrMarkRootActionAvailability` |
| ![Non-Dynamic][non-dynamic] | `KnownProjectChecker` |
| ![Non-Dynamic][non-dynamic] | `WorkspaceModuleNameSuffixProvider` |
| | `EditorNotificationWarningProvider` |
| | `ProjectFixesProvider` |
| ![Non-Dynamic][non-dynamic] | `Provider` |
| | `WidgetStatusProvider` |
| ![Non-Dynamic][non-dynamic] | `CidrWorkspaceProvider` |
| | `CidrProjectModelTypeProvider` |
### ClangFormatPlugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| ![Non-Dynamic][non-dynamic] | `ClangFormatChangeSettingsProvider` |
### CLionCMakeCore.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `CMakeBuildProcessListenerCreator` |
| | `CMakeSettingsFlavorProvider` |
| | `CMakeFlavorProvider` |
| | `CMakeLanguageKindRecognizer` |
| | `FutureProvider` |
| | `FutureProvider` |
| ![Non-Dynamic][non-dynamic] | `CMakeRunnerStep` |
| | `CMakeTargetToConfigProvider` |
| | `CMakeToolWindowFocusContributor` |
| | `CMakeCompilerEnvironmentContributor` |
### CLionExecutionPlugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `DebugTargetsProvider` |
| | `Contributor` |
| | `CidrCompoundConfigurationContext` |
| | `CLionExternalConfigurationProvider` |
| | `CLionShowAssemblyFuncInfoProvider` |
### CLionMakefilePlugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `MkBuildSystemDetector` |
| | `MkProjectPreConfigurator` |
### CLionWizard.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `OpenWizardStepProvider` |
### CMakePsiPlugin.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `CMakeBundledDocumentationProvider` |
| | `CMakeEnvironmentVariableProvider` |
| | `CMakeFileLocationProvider` |
### com.intellij.cidr.lang.clangd
| Extension Point | Implementation |
|-----------------|----------------|
| | `ClangTidyAnnotationApplier` |
| | `ClangTidyResolveInfoProvider` |
| | `ClangAnnotatorUtil` |
| | `ClangdBridgeInterface` |
| ![DumbAware][dumb-aware] | `ExternalCompletionProvider` |
### com.intellij.cidr.uml
| Extension Point | Implementation |
|-----------------|----------------|
| | `UmlDiagramDragAndDropReceiver` |
| | `UmlDiagramLanguage` |
### intellij.cidr.coverage.xml
| Extension Point | Implementation |
|-----------------|----------------|
| ![Non-Dynamic][non-dynamic] | `CidrCoverageComposer` |
| ![Non-Dynamic][non-dynamic] | `CidrCoverageComposerRunner` |
| ![Non-Dynamic][non-dynamic] | `CidrCoverageDataFileProvider` |
| ![Non-Dynamic][non-dynamic] | `CidrCoverageErrorProcessor` |
| ![Non-Dynamic][non-dynamic] | `CidrCoverageViewExtensionProvider` |
| ![Non-Dynamic][non-dynamic] | `GCovCoverageToolProvider` |
| ![Non-Dynamic][non-dynamic] | `LLVMCoverageToolsProvider` |
### intellij.cidr.profiling.xml
| Extension Point | Implementation |
|-----------------|----------------|
| ![Non-Dynamic][non-dynamic] | `MemoryProfileEnvironmentProvider` |
| ![Non-Dynamic][non-dynamic] | `MemoryProfilePresentation` |
| | `ValgrindDisabler` |
| | `ValgrindExecutionContext` |
### intellij.cidr.translateCode.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `CidrTranslatorProvider` |
### intellij.clion.featuresTrainer.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `CLionExternalLessons` |
### intellij.clion.runFile.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `CppFileEntryPointDetector` |
### intellij.clion.west.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `WestPathContributor` |
### intellij.rml.dfa.devtools.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `DfaDebugProvider` |
### intellij.rml.dfa.impl.xml
| Extension Point | Implementation |
|-----------------|----------------|
| | `DfaDebugExtension` |
| | `IrSerializationProvider` |
[deprecated]: https://img.shields.io/badge/-Deprecated-lightgrey?style=flat-square
[removal]: https://img.shields.io/badge/-Removal-red?style=flat-square
[obsolete]: https://img.shields.io/badge/-Obsolete-grey?style=flat-square
[experimental]: https://img.shields.io/badge/-Experimental-violet?style=flat-square
[internal]: https://img.shields.io/badge/-Internal-darkred?style=flat-square
[project-level]: https://img.shields.io/badge/-Project--Level-blue?style=flat-square
[non-dynamic]: https://img.shields.io/badge/-Non--Dynamic-orange?style=flat-square
[dumb-aware]: https://img.shields.io/badge/-DumbAware-darkgreen?style=flat-square