CIDR: Avoid Java errors during KTS analysis in CIDR
There is no Java support in CIDR. Therefore: - analyze KTS in CIDR using Common platform - disable error highlighting for KTS in CIDR Issue #KT-29953 Fixed
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
+3
-2
@@ -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<KtFile> = 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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user