Scratch: should always have default script definition
This commit is contained in:
+9
-1
@@ -20,6 +20,7 @@ import com.intellij.diagnostic.PluginException
|
|||||||
import com.intellij.execution.console.IdeConsoleRootType
|
import com.intellij.execution.console.IdeConsoleRootType
|
||||||
import com.intellij.ide.plugins.PluginManagerCore
|
import com.intellij.ide.plugins.PluginManagerCore
|
||||||
import com.intellij.ide.scratch.ScratchFileService
|
import com.intellij.ide.scratch.ScratchFileService
|
||||||
|
import com.intellij.ide.scratch.ScratchRootType
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.openapi.application.runWriteAction
|
import com.intellij.openapi.application.runWriteAction
|
||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
@@ -77,7 +78,14 @@ class ScriptDefinitionsManager(private val project: Project) : LazyScriptDefinit
|
|||||||
val cached = scriptDefinitionsCacheLock.write { scriptDefinitionsCache.get(file) }
|
val cached = scriptDefinitionsCacheLock.write { scriptDefinitionsCache.get(file) }
|
||||||
if (cached != null) return cached
|
if (cached != null) return cached
|
||||||
|
|
||||||
val definition = super.findDefinition(file) ?: return null
|
val virtualFile = VfsUtil.findFileByIoFile(file, true)
|
||||||
|
val definition =
|
||||||
|
if (virtualFile != null && ScratchFileService.getInstance().getRootType(virtualFile) is ScratchRootType) {
|
||||||
|
// Scratch should always have default script definition
|
||||||
|
getDefaultDefinition()
|
||||||
|
} else {
|
||||||
|
super.findDefinition(file) ?: return null
|
||||||
|
}
|
||||||
|
|
||||||
scriptDefinitionsCacheLock.write {
|
scriptDefinitionsCacheLock.write {
|
||||||
scriptDefinitionsCache.put(file, definition)
|
scriptDefinitionsCache.put(file, definition)
|
||||||
|
|||||||
Reference in New Issue
Block a user