CLion 2062.2: Where are OCFileType and OCLanguage?

In a plugin I have a dependency on plugin “com.intellij.clion” and “com.intellij.cidr.lang”. The plugin is using “OCFileType” and “OCLanguage”. It’s working as expected with 2026.1.

With 2026.2 beta, bundled plugin “com.intellij.cidr.lang” is not there anymore and I can’t find the module or plugin providing “OCFileType” and “OCLanguage”.

Where have the classes moved with 2026.2?

Thank you!

The classes are still in the plugin com.intellij.cidr.lang which is not any longer bundled with CLion, but available on the marketplace https://plugins.jetbrains.com/plugin/32355-c-c--language-support-via-classic-engine. There is a plugin function for gradle scripts to get the plugin from MP IntelliJ Platform Gradle Plugin (2.x) | IntelliJ Platform Plugin SDK

@enovozhilov Thank you for your reply!

Changing bundledPlugin("com.intellij.cidr.lang") to compatiblePlugin("com.intellij.cidr.lang") for 2026.2 fixed the compilation problem.

But at runtime CLion complains that both ‘C/C++ Language Support via Classic Engine’ and ‘CLion C and C++’ are enabled at the same time, but that only one can be active.

I’m not aware of a Gradle helper to turn off a bundled module. Without it, I don’t think the Classic Engine plugin could be used in a Gradle build setup :pensive_face:
cc @jakub.chrzanowski

With 2026.2 a new engine is the default now and most users would not use the classic engine, I suppose.

What would be the new FileType and Language with the new/native engine? Some help on the migration would be great.

I couldn’t find anything about this in the development guide.

@enovozhilov After some investigation I found that I need this in the build setup to make CppFileType and CppLanguage of CLion Nova accessible:

bundledPlugins("org.jetbrains.plugins.clion.radler")

Tests now get the expected file types, but with intellij-gradle-platform 2.18.1 and CLion 2026.2 rc, the tests still fail with the attached exception.

I don’t know what’s wrong here. Would you have some advice?
Thanks!

Installation home directory: file:////Users/jansorg/.intellij-platform/ides/CL-262.8665.173
System directory: file:////Users/jansorg/Harness/IDEIntegration/jetbrains/.intellijPlatform/sandbox/plugin-clion-nova/CL-2026.2/system-test
Config directory: file:////Users/jansorg/Harness/IDEIntegration/jetbrains/.intellijPlatform/sandbox/plugin-clion-nova/CL-2026.2/config-test
Log directory: file:////Users/jansorg/Harness/IDEIntegration/jetbrains/.intellijPlatform/sandbox/plugin-clion-nova/CL-2026.2/log-test
Debug | ByteBufferAsyncProcessor  | 66:DefaultDispatcher-worker-23 @com.intellij.openapi.rd.util.RdCoroutineHost$ScopeHolder#171 | PAUSE ('Socket not connected') :: {id = FrontendToBackend/Sender, state = 'Initialized'} 
Debug | Server                    | 120:FrontendToBackend | FrontendToBackend: listening /127.0.0.1:51782 
[  15893]   WARN - #c.i.u.u.u.DebouncedUpdates - Ignoring queue() call to cancelled UpdateQueue 'CodeVisionHost'
ERROR: patch.engine.backend.freeze.timeout must not be enabled in test by default because it will lead to instability. Use patch.engine.backend.freeze.timeout.allow.in.tests if you want to enable this behavior forcibly
java.lang.Throwable: patch.engine.backend.freeze.timeout must not be enabled in test by default because it will lead to instability. Use patch.engine.backend.freeze.timeout.allow.in.tests if you want to enable this behavior forcibly
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:378)
	at com.jetbrains.rider.editorActions.RiderPatchEngineBackendIsFrozenTracker$AutoLoader.execute(RiderPatchEngineBackendIsFrozenTracker.kt:133)
	at com.jetbrains.rider.editorActions.RiderPatchEngineBackendIsFrozenTracker$AutoLoader$execute$1.invokeSuspend(RiderPatchEngineBackendIsFrozenTracker.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt)
	at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
	at kotlinx.coroutines.debug.internal.DebugProbesImpl$CoroutineOwner.<init>(DebugProbesImpl.kt:531)
	at kotlinx.coroutines.debug.internal.DebugProbesImpl.createOwner(DebugProbesImpl.kt:510)
	at kotlinx.coroutines.debug.internal.DebugProbesImpl.probeCoroutineCreated$kotlinx_coroutines_core(DebugProbesImpl.kt:497)
	at kotlin.coroutines.jvm.internal.DebugProbesKt.probeCoroutineCreated(DebugProbesKt.java:12)
	at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt.createCoroutineUnintercepted(IntrinsicsJvm.kt:161)
	at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:26)
	at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:358)
	at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:134)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:53)
	at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:44)
	at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source)
	at com.intellij.ide.startup.impl.StartupManagerImplKt.launchActivity(StartupManagerImpl.kt:531)
	at com.intellij.ide.startup.impl.StartupManagerImplKt.access$launchActivity(StartupManagerImpl.kt:1)
	at com.intellij.ide.startup.impl.StartupManagerImpl.doRunPostStartupActivities(StartupManagerImpl.kt:317)
	at com.intellij.ide.startup.impl.StartupManagerImpl.runPostStartupActivities(StartupManagerImpl.kt:224)
	at com.intellij.project.TestProjectManager$openProject$2.invokeSuspend(TestProjectManager.kt:126)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt)
	at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
	at kotlinx.coroutines.debug.internal.DebugProbesImpl$CoroutineOwner.<init>(DebugProbesImpl.kt:531)
	at kotlinx.coroutines.debug.internal.DebugProbesImpl.createOwner(DebugProbesImpl.kt:510)
	at kotlinx.coroutines.debug.internal.DebugProbesImpl.probeCoroutineCreated$kotlinx_coroutines_core(DebugProbesImpl.kt:497)
	at kotlin.coroutines.jvm.internal.DebugProbesKt.probeCoroutineCreated(DebugProbesKt.java:12)
	at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt.createCoroutineUnintercepted(IntrinsicsJvm.kt:161)
	at 


// snipped

Caused by: com.intellij.testFramework.TestLoggerFactory$TestLoggerAssertionError: patch.engine.backend.freeze.timeout must not be enabled in test by default because it will lead to instability. Use patch.engine.backend.freeze.timeout.allow.in.tests if you want to enable this behavior forcibly
	at com.intellij.testFramework.TestLoggerFactory$TestLogger.error(TestLoggerFactory.java:584)
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:378)
	at com.jetbrains.rider.editorActions.RiderPatchEngineBackendIsFrozenTracker$AutoLoader.execute(RiderPatchEngineBackendIsFrozenTracker.kt:133)
	at com.jetbrains.rider.editorActions.RiderPatchEngineBackendIsFrozenTracker$AutoLoader$execute$1.invokeSuspend(RiderPatchEngineBackendIsFrozenTracker.kt)
	... 128 more
Caused by: java.lang.Throwable: patch.engine.backend.freeze.timeout must not be enabled in test by default because it will lead to instability. Use patch.engine.backend.freeze.timeout.allow.in.tests if you want to enable this behavior forcibly
	... 131 more

@jansorg, hey, can you please show what’s your tests configuration (gradle file or whatever)? You need to add -Dpatch.engine.backend.freeze.timeout=-1 to system properties to your tests to make it work.