diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/cidrUtil.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/cidrUtil.kt index dda06269d09..1ef72283e6e 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/cidrUtil.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/cidrUtil.kt @@ -9,4 +9,8 @@ package org.jetbrains.kotlin.idea.util import com.intellij.util.PlatformUtils -val isRunningInCidrIde by lazy { PlatformUtils.isCidr() } +// Currently CIDR IDEs (CLion and AppCode) have no Java support. +// Use this property to bypass Java-specific logic in CIDR. +val isRunningInCidrIde: Boolean by lazy(LazyThreadSafetyMode.PUBLICATION) { + PlatformUtils.isCidr() +} diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheServiceImpl.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheServiceImpl.kt index cb3fc27f01b..b6edaa30f5b 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheServiceImpl.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheServiceImpl.kt @@ -50,12 +50,12 @@ import org.jetbrains.kotlin.idea.project.TargetPlatformDetector import org.jetbrains.kotlin.idea.project.outOfBlockModificationCount import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.idea.util.ProjectRootsUtil +import org.jetbrains.kotlin.platform.DefaultIdeTargetPlatformKindProvider import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.contains import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.resolve.diagnostics.KotlinSuppressCache -import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import org.jetbrains.kotlin.utils.addToStdlib.sumByLong @@ -97,7 +97,8 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService { syntheticFiles: Collection = listOf() ): ProjectResolutionFacade { val sdk = dependenciesModuleInfo.sdk - val platform = JvmPlatform // TODO: Js scripts? + val platform = /* Fallback to Common platform in CIDR (Java is not supported there) */ + DefaultIdeTargetPlatformKindProvider.defaultCompilerPlatform // TODO: Js scripts? val settings = PlatformAnalysisSettings( platform, sdk, true, LanguageFeature.ReleaseCoroutines.defaultState == LanguageFeature.State.ENABLED diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingUtil.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingUtil.kt index db04dad670b..1594c6d8904 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingUtil.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/KotlinHighlightingUtil.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.idea.core.script.IdeScriptReportSink import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager import org.jetbrains.kotlin.idea.core.script.scriptDependencies import org.jetbrains.kotlin.idea.util.ProjectRootsUtil +import org.jetbrains.kotlin.idea.util.isRunningInCidrIde import org.jetbrains.kotlin.psi.KtCodeFragment import org.jetbrains.kotlin.psi.KtFile import kotlin.script.experimental.dependencies.ScriptReport @@ -65,6 +66,7 @@ object KotlinHighlightingUtil { @Suppress("DEPRECATION") private fun shouldHighlightScript(ktFile: KtFile): Boolean { + if (isRunningInCidrIde) return false // There is no Java support in CIDR. So do not highlight errors in KTS if running in CIDR. if (ktFile.virtualFile.scriptDependencies == null) return false if (ktFile.virtualFile.getUserData(IdeScriptReportSink.Reports)?.any { it.severity == ScriptReport.Severity.FATAL } == true) { return false