Fix script definition matching for REPL console
fixes IdeReplCompletionTestGenerated tests in addition, fix default ScriptDefinition generation
This commit is contained in:
@@ -134,9 +134,7 @@ class KotlinConsoleRunner(
|
|||||||
|
|
||||||
private val consoleScriptDefinition = object : KotlinScriptDefinition(Any::class) {
|
private val consoleScriptDefinition = object : KotlinScriptDefinition(Any::class) {
|
||||||
override val name = "Kotlin REPL"
|
override val name = "Kotlin REPL"
|
||||||
override fun isScript(fileName: String): Boolean {
|
override fun isScript(fileName: String): Boolean = fileName.startsWith(consoleView.virtualFile.name)
|
||||||
return fileName == consoleView.virtualFile.name
|
|
||||||
}
|
|
||||||
override fun getScriptName(script: KtScript) = Name.identifier("REPL")
|
override fun getScriptName(script: KtScript) = Name.identifier("REPL")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -278,10 +276,13 @@ class KotlinConsoleRunner(
|
|||||||
runReadAction {
|
runReadAction {
|
||||||
val lineNumber = replState.successfulLinesCount + 1
|
val lineNumber = replState.successfulLinesCount + 1
|
||||||
val virtualFile =
|
val virtualFile =
|
||||||
LightVirtualFile("line$lineNumber${KotlinParserDefinition.STD_SCRIPT_EXT}", KotlinLanguage.INSTANCE, text).apply {
|
LightVirtualFile(
|
||||||
charset = CharsetToolkit.UTF8_CHARSET
|
"${consoleView.virtualFile.name}$lineNumber${KotlinParserDefinition.STD_SCRIPT_EXT}",
|
||||||
isWritable = false
|
KotlinLanguage.INSTANCE, text
|
||||||
}
|
).apply {
|
||||||
|
charset = CharsetToolkit.UTF8_CHARSET
|
||||||
|
isWritable = false
|
||||||
|
}
|
||||||
val psiFile = (PsiFileFactory.getInstance(project) as PsiFileFactoryImpl).trySetupPsiForFile(virtualFile, KotlinLanguage.INSTANCE, true, false) as KtFile?
|
val psiFile = (PsiFileFactory.getInstance(project) as PsiFileFactoryImpl).trySetupPsiForFile(virtualFile, KotlinLanguage.INSTANCE, true, false) as KtFile?
|
||||||
?: error("Failed to setup PSI for file:\n$text")
|
?: error("Failed to setup PSI for file:\n$text")
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@ abstract class LazyScriptDefinitionProvider : ScriptDefinitionProvider {
|
|||||||
protected open fun getScriptingHostConfiguration(): ScriptingHostConfiguration = defaultJvmScriptingHostConfiguration
|
protected open fun getScriptingHostConfiguration(): ScriptingHostConfiguration = defaultJvmScriptingHostConfiguration
|
||||||
|
|
||||||
override fun getDefaultDefinition(): ScriptDefinition =
|
override fun getDefaultDefinition(): ScriptDefinition =
|
||||||
ScriptDefinition.FromLegacy(getScriptingHostConfiguration(), StandardScriptDefinition)
|
ScriptDefinition.getDefault(getScriptingHostConfiguration())
|
||||||
|
|
||||||
private var _cachedDefinitions: Sequence<ScriptDefinition>? = null
|
private var _cachedDefinitions: Sequence<ScriptDefinition>? = null
|
||||||
private val cachedDefinitions: Sequence<ScriptDefinition>
|
private val cachedDefinitions: Sequence<ScriptDefinition>
|
||||||
|
|||||||
Reference in New Issue
Block a user