Scripts: rewrite search without usage of legacy script definition

This commit is contained in:
Natalia Selezneva
2019-06-26 09:49:55 +03:00
parent 4853190752
commit 7215e03a47
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
@@ -30,7 +30,10 @@ import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInFileType
import org.jetbrains.kotlin.idea.decompiler.js.KotlinJavaScriptMetaFileType
import org.jetbrains.kotlin.idea.util.application.runReadAction
import org.jetbrains.kotlin.scripting.definitions.findScriptDefinition
import kotlin.script.experimental.location.ScriptExpectedLocation
import kotlin.script.experimental.api.ScriptAcceptedLocation
import kotlin.script.experimental.api.ScriptCompilationConfiguration
import kotlin.script.experimental.api.acceptedLocations
import kotlin.script.experimental.api.ide
abstract class KotlinBinaryExtension(val fileType: FileType) {
companion object {
@@ -70,23 +73,22 @@ object ProjectRootsUtil {
fileIndex: ProjectFileIndex = ProjectFileIndex.SERVICE.getInstance(project)
): Boolean {
val scriptDefinition = file.findScriptDefinition(project)
if (scriptDefinition != null) {
// TODO: rewrite to ScriptAcceptedLocation and without legacyDefinition
val scriptScope = scriptDefinition.legacyDefinition.scriptExpectedLocations
val includeAll = scriptScope.contains(ScriptExpectedLocation.Everywhere)
|| scriptScope.contains(ScriptExpectedLocation.Project)
val scriptScope = scriptDefinition?.compilationConfiguration?.get(ScriptCompilationConfiguration.ide.acceptedLocations)
if (scriptScope != null) {
val includeAll = scriptScope.contains(ScriptAcceptedLocation.Everywhere)
|| scriptScope.contains(ScriptAcceptedLocation.Project)
|| ScratchUtil.isScratch(file)
return isInContentWithoutScriptDefinitionCheck(
project,
file,
includeProjectSource && (
includeAll
|| scriptScope.contains(ScriptExpectedLocation.SourcesOnly)
|| scriptScope.contains(ScriptExpectedLocation.TestsOnly)
|| scriptScope.contains(ScriptAcceptedLocation.Sources)
|| scriptScope.contains(ScriptAcceptedLocation.Tests)
),
includeLibrarySource && (includeAll || scriptScope.contains(ScriptExpectedLocation.Libraries)),
includeLibraryClasses && (includeAll || scriptScope.contains(ScriptExpectedLocation.Libraries)),
includeScriptDependencies && (includeAll || scriptScope.contains(ScriptExpectedLocation.Libraries)),
includeLibrarySource && (includeAll || scriptScope.contains(ScriptAcceptedLocation.Libraries)),
includeLibraryClasses && (includeAll || scriptScope.contains(ScriptAcceptedLocation.Libraries)),
includeScriptDependencies && (includeAll || scriptScope.contains(ScriptAcceptedLocation.Libraries)),
includeScriptsOutsideSourceRoots && includeAll,
fileIndex
)
@@ -116,8 +118,10 @@ object ProjectRootsUtil {
if (ProjectRootManager.getInstance(project).fileIndex.isInContent(file) || ScratchUtil.isScratch(file)) {
return true
}
// TODO: rewrite to ScriptAcceptedLocation and without legacyDefinition
return file.findScriptDefinition(project)?.legacyDefinition?.scriptExpectedLocations?.contains(ScriptExpectedLocation.Everywhere) == true
return file.findScriptDefinition(project)
?.compilationConfiguration
?.get(ScriptCompilationConfiguration.ide.acceptedLocations)
?.contains(ScriptAcceptedLocation.Everywhere) == true
}
if (!includeLibraryClasses && !includeLibrarySource) return false