IntelliJ Platform Plugin SDK Help

CLion Plugin Development

CLion is an IntelliJ Platform-based product. Plugin projects for CLion can be developed using IntelliJ IDEA.

CLion Plugin Setup

Gradle Build Script

Define a dependency using clion(), see Versions link on top of this page for all available versions. See Local IntelliJ Platform IDE Instance for using a local installation.

A dependency on the bundled com.intellij.clion plugin must be added using the bundledPlugin() helper.

Minimum build.gradle.kts setup:

repositories { mavenCentral() intellijPlatform { defaultRepositories() } } dependencies { intellijPlatform { clion("<versionNumber>") bundledPlugin("com.intellij.clion") } }

The configuration of CLion plugin projects follows the methods described in Configuring Plugin Projects using a Product-Specific Attribute, and Configuring the plugin.xml File.

The table below summarizes the Gradle IntelliJ Plugin (1.x) attributes to set in the plugin project's Gradle build script. Click on an entry in the table's Attribute column to go to the documentation about that attribute.

gradle-intellij-plugin Attribute

Attribute Value

intellij.type

CL for the product CLion.

intellij.version

Set to the targeted CLion version, e.g. 2019.3.1.

intellij.plugins

No specific declaration is needed.

intellij.downloadSources

false is required because no public source code is available.

runIde.ideDir

Not needed; the Development Instance will automatically match intellij.type.

plugin.xml

The dependency on the CLion APIs must be declared in the plugin.xml file. As described in Modules Specific to Functionality table, the <depends> tags must declare com.intellij.modules.clion module dependency, or com.intellij.clion plugin dependency when targeting only versions 2020.3+.

C/C++ Language Engine: Nova and Classic

CLion provides two C/C++ language engines:

  • Nova – the current engine based on the ReSharper C++ engine. It is enabled by default since CLion 2025.3 and is the only engine bundled with the IDE since CLion 2026.2.

  • Classic – the original in-IDE engine, backed by the com.intellij.cidr.lang plugin and the com.jetbrains.cidr.lang APIs. Since CLion 2026.2, it is no longer bundled and is distributed only as a separate JetBrains Marketplace plugin.

Using the Classic C/C++ Language APIs

The classic C/C++ language support — including OCFileType, OCLanguage, OCFile, and the rest of the com.jetbrains.cidr.lang package — is available in the C/C++ Language Support via Classic Engine plugin (ID com.intellij.cidr.lang).

As this plugin is no longer bundled, declare a dependency on its Marketplace version using the plugin() function:

dependencies { intellijPlatform { clion("<versionNumber>") bundledPlugin("com.intellij.clion") // C/C++ Language Support via Classic Engine (unbundled since 2026.2) plugin("com.intellij.cidr.lang", "<pluginVersion>") } }

The com.intellij.modules.cidr.lang module dependency in the plugin.xml file stays unchanged:

<depends>com.intellij.modules.cidr.lang</depends>

Migrating to Nova

Nova represents C/C++ files with different classes located in the com.jetbrains.rider.cpp.fileType package:

Classic (com.jetbrains.cidr.lang)

Nova (com.jetbrains.rider.cpp.fileType)

OCFileType

CppFileType

OCLanguage

CppLanguage

psi.OCFile

psi.CppFile

Nova performs C/C++ code analysis in a separate backend process and does not expose a frontend PSI model. Apart from the file type and language above (and basic traversal via com.jetbrains.rider.cpp.fileType.psi.CppElement), there is no replacement for the Classic frontend APIs, including:

  • PSI elements — com.jetbrains.cidr.lang.psi.OCFile, com.jetbrains.cidr.lang.psi.OCIncludeDirective, com.jetbrains.cidr.lang.psi.OCPragma, and the rest of the com.jetbrains.cidr.lang.psi package

  • symbols — the com.jetbrains.cidr.lang.symbols package

  • types — com.jetbrains.cidr.lang.types.OCType

  • resolve and references — the com.jetbrains.cidr.lang.resolve package

If your plugin cannot be migrated to CLion Nova yet, follow and vote for CPP-36085 to track improvements to Classic-to-Nova plugin migration.

Available CLion APIs

Use the Exploring APIs as a Consumer process to identify the JAR files under the External Library Gradle:com.jetbrains:clion:<version>. Test your plugin with versions of CLion you intend to support.

Open Source Plugins for CLion

When learning new APIs, it is helpful to have some representative projects for reference:

Getting Help

For plugin implementation support and questions, see the Getting Help section.

15 July 2026