Scripts: rewrite search without usage of legacy script definition
This commit is contained in:
@@ -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.
|
* 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.decompiler.js.KotlinJavaScriptMetaFileType
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
import org.jetbrains.kotlin.scripting.definitions.findScriptDefinition
|
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) {
|
abstract class KotlinBinaryExtension(val fileType: FileType) {
|
||||||
companion object {
|
companion object {
|
||||||
@@ -70,23 +73,22 @@ object ProjectRootsUtil {
|
|||||||
fileIndex: ProjectFileIndex = ProjectFileIndex.SERVICE.getInstance(project)
|
fileIndex: ProjectFileIndex = ProjectFileIndex.SERVICE.getInstance(project)
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val scriptDefinition = file.findScriptDefinition(project)
|
val scriptDefinition = file.findScriptDefinition(project)
|
||||||
if (scriptDefinition != null) {
|
val scriptScope = scriptDefinition?.compilationConfiguration?.get(ScriptCompilationConfiguration.ide.acceptedLocations)
|
||||||
// TODO: rewrite to ScriptAcceptedLocation and without legacyDefinition
|
if (scriptScope != null) {
|
||||||
val scriptScope = scriptDefinition.legacyDefinition.scriptExpectedLocations
|
val includeAll = scriptScope.contains(ScriptAcceptedLocation.Everywhere)
|
||||||
val includeAll = scriptScope.contains(ScriptExpectedLocation.Everywhere)
|
|| scriptScope.contains(ScriptAcceptedLocation.Project)
|
||||||
|| scriptScope.contains(ScriptExpectedLocation.Project)
|
|
||||||
|| ScratchUtil.isScratch(file)
|
|| ScratchUtil.isScratch(file)
|
||||||
return isInContentWithoutScriptDefinitionCheck(
|
return isInContentWithoutScriptDefinitionCheck(
|
||||||
project,
|
project,
|
||||||
file,
|
file,
|
||||||
includeProjectSource && (
|
includeProjectSource && (
|
||||||
includeAll
|
includeAll
|
||||||
|| scriptScope.contains(ScriptExpectedLocation.SourcesOnly)
|
|| scriptScope.contains(ScriptAcceptedLocation.Sources)
|
||||||
|| scriptScope.contains(ScriptExpectedLocation.TestsOnly)
|
|| scriptScope.contains(ScriptAcceptedLocation.Tests)
|
||||||
),
|
),
|
||||||
includeLibrarySource && (includeAll || scriptScope.contains(ScriptExpectedLocation.Libraries)),
|
includeLibrarySource && (includeAll || scriptScope.contains(ScriptAcceptedLocation.Libraries)),
|
||||||
includeLibraryClasses && (includeAll || scriptScope.contains(ScriptExpectedLocation.Libraries)),
|
includeLibraryClasses && (includeAll || scriptScope.contains(ScriptAcceptedLocation.Libraries)),
|
||||||
includeScriptDependencies && (includeAll || scriptScope.contains(ScriptExpectedLocation.Libraries)),
|
includeScriptDependencies && (includeAll || scriptScope.contains(ScriptAcceptedLocation.Libraries)),
|
||||||
includeScriptsOutsideSourceRoots && includeAll,
|
includeScriptsOutsideSourceRoots && includeAll,
|
||||||
fileIndex
|
fileIndex
|
||||||
)
|
)
|
||||||
@@ -116,8 +118,10 @@ object ProjectRootsUtil {
|
|||||||
if (ProjectRootManager.getInstance(project).fileIndex.isInContent(file) || ScratchUtil.isScratch(file)) {
|
if (ProjectRootManager.getInstance(project).fileIndex.isInContent(file) || ScratchUtil.isScratch(file)) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
// TODO: rewrite to ScriptAcceptedLocation and without legacyDefinition
|
return file.findScriptDefinition(project)
|
||||||
return file.findScriptDefinition(project)?.legacyDefinition?.scriptExpectedLocations?.contains(ScriptExpectedLocation.Everywhere) == true
|
?.compilationConfiguration
|
||||||
|
?.get(ScriptCompilationConfiguration.ide.acceptedLocations)
|
||||||
|
?.contains(ScriptAcceptedLocation.Everywhere) == true
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!includeLibraryClasses && !includeLibrarySource) return false
|
if (!includeLibraryClasses && !includeLibrarySource) return false
|
||||||
|
|||||||
Reference in New Issue
Block a user