From 074aa47dc00af2dce0db1f775685b15d42856d63 Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Wed, 5 Sep 2018 09:49:13 +0300 Subject: [PATCH] Use ProjectRootUtil.isInContent instead of checking script expected location manually --- .../highlighter/KotlinHighlightingUtil.kt | 5 +--- .../core/script/ScriptDefinitionsManager.kt | 24 ------------------- .../core/script/ScriptDependenciesUpdater.kt | 5 ++-- 3 files changed, 4 insertions(+), 30 deletions(-) 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 7cae883d552..6d22aa7a372 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 @@ -20,12 +20,10 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.idea.caches.project.NotUnderContentRootModuleInfo import org.jetbrains.kotlin.idea.caches.project.getModuleInfo 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.psi.KtCodeFragment import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.script.findScriptDefinition import kotlin.script.experimental.dependencies.ScriptReport object KotlinHighlightingUtil { @@ -67,7 +65,6 @@ object KotlinHighlightingUtil { return false } - val scriptDefinition = findScriptDefinition(ktFile) ?: return false - return ScriptDefinitionsManager.getInstance(ktFile.project).isInExpectedLocation(ktFile, scriptDefinition) + return ProjectRootsUtil.isInProjectSource(ktFile, includeScriptsOutsideSourceRoots = true) } } \ No newline at end of file diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt index 50f687037b4..034882171a1 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt @@ -17,7 +17,6 @@ package org.jetbrains.kotlin.idea.core.script import com.intellij.execution.console.IdeConsoleRootType -import com.intellij.ide.projectView.impl.ProjectRootsUtil.isInTestSource import com.intellij.ide.scratch.ScratchFileService import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.runWriteAction @@ -36,8 +35,6 @@ import com.intellij.openapi.vfs.VirtualFile import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.caches.project.SdkInfo import org.jetbrains.kotlin.idea.caches.project.getScriptRelatedModuleInfo -import org.jetbrains.kotlin.idea.util.ProjectRootsUtil.isInContent -import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.script.* import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdapterFromNewAPI import org.jetbrains.kotlin.utils.PathUtil @@ -58,7 +55,6 @@ import kotlin.script.experimental.host.createCompilationConfigurationFromTemplat import kotlin.script.experimental.jvm.JvmDependency import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration import kotlin.script.experimental.jvm.util.scriptCompilationClasspathFromContextOrStlib -import kotlin.script.experimental.location.ScriptExpectedLocation import kotlin.script.templates.standard.ScriptTemplateWithArgs class ScriptDefinitionsManager(private val project: Project) : LazyScriptDefinitionProvider() { @@ -111,26 +107,6 @@ class ScriptDefinitionsManager(private val project: Project) : LazyScriptDefinit return StandardIdeScriptDefinition(project) } - @Suppress("DEPRECATION") - fun isInExpectedLocation(ktFile: KtFile, scriptDefinition: KotlinScriptDefinition): Boolean { - if (ScratchFileService.isInScratchRoot(ktFile.virtualFile)) return true - - val scriptScope = scriptDefinition.scriptExpectedLocations - return when { - scriptScope.contains(ScriptExpectedLocation.Everywhere) -> true - scriptScope.contains(ScriptExpectedLocation.Project) - && ProjectRootManager.getInstance(ktFile.project).fileIndex.isInContent(ktFile.virtualFile) -> true - scriptScope.contains(ScriptExpectedLocation.TestsOnly) && isInTestSource(ktFile) -> true - else -> return isInContent( - ktFile, - scriptScope.contains(ScriptExpectedLocation.SourcesOnly), - scriptScope.contains(ScriptExpectedLocation.Libraries), - scriptScope.contains(ScriptExpectedLocation.Libraries), - scriptScope.contains(ScriptExpectedLocation.Libraries) - ) - } - } - private fun updateDefinitions() { assert(lock.isWriteLocked) { "updateDefinitions should only be called under the write lock" } definitions = definitionsByContributor.values.flattenTo(mutableListOf()).asSequence() diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt index 813320bb245..d886b8fc6d9 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt @@ -34,6 +34,7 @@ import org.jetbrains.annotations.TestOnly import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.core.script.dependencies.FromFileAttributeScriptDependenciesLoader import org.jetbrains.kotlin.idea.core.script.dependencies.ScriptDependenciesLoader +import org.jetbrains.kotlin.idea.util.ProjectRootsUtil import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.NotNullableUserDataProperty import org.jetbrains.kotlin.script.findScriptDefinition @@ -79,7 +80,7 @@ class ScriptDependenciesUpdater( val scriptDef = findScriptDefinition(ktFile) ?: return - if (!ScriptDefinitionsManager.getInstance(project).isInExpectedLocation(ktFile, scriptDef)) return + if (!ProjectRootsUtil.isInProjectSource(ktFile, includeScriptsOutsideSourceRoots = true)) return ScriptDependenciesLoader.updateDependencies(file, scriptDef, project, shouldNotifyRootsChanged = true) } }) @@ -105,7 +106,7 @@ class ScriptDependenciesUpdater( val ktFile = PsiManager.getInstance(project).findFile(file) as? KtFile ?: return val scriptDef = findScriptDefinition(ktFile) ?: return - if (!ScriptDefinitionsManager.getInstance(project).isInExpectedLocation(ktFile, scriptDef)) return + if (!ProjectRootsUtil.isInProjectSource(ktFile, includeScriptsOutsideSourceRoots = true)) return scriptsQueue.cancelAllRequests()