Remove support for xml-based script configs, other minor refactorings
This commit is contained in:
+5
-8
@@ -35,8 +35,10 @@ import com.intellij.util.io.URLUtil
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||
import org.jetbrains.kotlin.script.*
|
||||
import org.jetbrains.kotlin.utils.PathUtil
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider
|
||||
import org.jetbrains.kotlin.script.KotlinScriptExternalImportsProvider
|
||||
import org.jetbrains.kotlin.script.StandardScriptDefinition
|
||||
import org.jetbrains.kotlin.script.makeScriptDefsFromTemplatesProviderExtensions
|
||||
import java.io.File
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock
|
||||
import kotlin.concurrent.read
|
||||
@@ -49,10 +51,6 @@ class KotlinScriptConfigurationManager(
|
||||
private val scriptExternalImportsProvider: KotlinScriptExternalImportsProvider
|
||||
) {
|
||||
|
||||
private val kotlinEnvVars: Map<String, List<String>> by lazy {
|
||||
generateKotlinScriptClasspathEnvVarsFromPaths(project, PathUtil.getKotlinPathsForIdeaPlugin())
|
||||
}
|
||||
|
||||
init {
|
||||
reloadScriptDefinitions()
|
||||
|
||||
@@ -102,8 +100,7 @@ class KotlinScriptConfigurationManager(
|
||||
fun getAllLibrarySourcesScope() = NonClasspathDirectoriesScope(getAllLibrarySources())
|
||||
|
||||
private fun reloadScriptDefinitions() {
|
||||
(makeScriptDefsFromTemplatesProviderExtensions(project, { ep, ex -> log.warn("[kts] Error loading definition from ${ep.id}", ex) }) +
|
||||
loadScriptConfigsFromProjectRoot(File(project.basePath ?: "")).map { KotlinConfigurableScriptDefinition(it, kotlinEnvVars) }).let {
|
||||
makeScriptDefsFromTemplatesProviderExtensions(project, { ep, ex -> log.warn("[kts] Error loading definition from ${ep.id}", ex) }).let {
|
||||
if (it.isNotEmpty()) {
|
||||
scriptDefinitionProvider.setScriptDefinitions(it + StandardScriptDefinition)
|
||||
}
|
||||
|
||||
+8
-12
@@ -21,7 +21,6 @@ import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.ResolveScopeProvider
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager
|
||||
import org.jetbrains.kotlin.script.KotlinConfigurableScriptDefinition
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromTemplate
|
||||
import org.jetbrains.kotlin.script.StandardScriptDefinition
|
||||
import org.jetbrains.kotlin.script.getScriptDefinition
|
||||
@@ -29,18 +28,15 @@ import kotlin.script.StandardScriptTemplate
|
||||
|
||||
class KotlinScriptResolveScopeProvider : ResolveScopeProvider() {
|
||||
override fun getResolveScope(file: VirtualFile, project: Project): GlobalSearchScope? {
|
||||
val scriptDefinition = getScriptDefinition(file, project) ?: return null
|
||||
|
||||
// This is a workaround for completion in scripts and REPL to provide module dependencies
|
||||
if (scriptDefinition == StandardScriptDefinition || scriptDefinition.template == Any::class) {
|
||||
return null
|
||||
}
|
||||
|
||||
val scriptDefinition = getScriptDefinition(file, project)
|
||||
// TODO: this should get this particular scripts dependencies
|
||||
if (scriptDefinition is KotlinConfigurableScriptDefinition || scriptDefinition is KotlinScriptDefinitionFromTemplate) {
|
||||
// TODO: should include the file itself
|
||||
return KotlinScriptConfigurationManager.getInstance(project).getAllScriptsClasspathScope()
|
||||
return when {
|
||||
scriptDefinition == null -> null
|
||||
// This is a workaround for completion in scripts and REPL to provide module dependencies
|
||||
scriptDefinition == StandardScriptDefinition || scriptDefinition.template == Any::class -> null
|
||||
scriptDefinition is KotlinScriptDefinitionFromTemplate -> // TODO: should include the file itself
|
||||
KotlinScriptConfigurationManager.getInstance(project).getAllScriptsClasspathScope()
|
||||
else -> null
|
||||
}
|
||||
return null
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user