Refactor script definition and related parts:

- simplify script definition interface, convert it to class
 - create simple definitions right from base
 - refactor (rename and simplify) script definition with annotated template
 - simplify usages of script definition in many places
This commit is contained in:
Ilya Chernikov
2016-09-20 23:34:14 +02:00
parent 6bc488d95d
commit fe69185cd4
24 changed files with 290 additions and 358 deletions
@@ -21,7 +21,7 @@ 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.KotlinScriptDefinitionFromTemplate
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
import org.jetbrains.kotlin.script.StandardScriptDefinition
import org.jetbrains.kotlin.script.getScriptDefinition
import kotlin.script.StandardScriptTemplate
@@ -34,7 +34,7 @@ class KotlinScriptResolveScopeProvider : ResolveScopeProvider() {
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
scriptDefinition is KotlinScriptDefinitionFromAnnotatedTemplate -> // TODO: should include the file itself
KotlinScriptConfigurationManager.getInstance(project).getAllScriptsClasspathScope()
else -> null
}
@@ -67,7 +67,7 @@ import org.jetbrains.kotlin.psi.moduleInfo
import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyScriptDescriptor
import org.jetbrains.kotlin.resolve.repl.ReplState
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromTemplate
import org.jetbrains.kotlin.script.KotlinScriptDefinition
import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider
import java.awt.Color
import java.awt.Font
@@ -124,7 +124,7 @@ class KotlinConsoleRunner(
val executor = CommandExecutor(this)
var compilerHelper: ConsoleCompilerHelper by Delegates.notNull()
private val consoleScriptDefinition = object : KotlinScriptDefinitionFromTemplate(Any::class) {
private val consoleScriptDefinition = object : KotlinScriptDefinition(Any::class) {
override val name = "Kotlin REPL"
override fun <TF> isScript(file: TF): Boolean {
val vf = when (file) {