# 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