From 4b1ce15619995cb6a07ffe94b9e6220feef22e18 Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Mon, 2 Jul 2018 16:30:50 +0300 Subject: [PATCH] Run script dependencies update on editor focus change ^KT-24588 Fixed --- .../kotlin/idea/core/script/ScriptDependenciesUpdater.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt index 5455ab78aa5..175d520acc7 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt @@ -23,6 +23,7 @@ import com.intellij.openapi.editor.event.DocumentEvent import com.intellij.openapi.editor.event.DocumentListener import com.intellij.openapi.fileEditor.FileDocumentManager import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.openapi.fileEditor.FileEditorManagerEvent import com.intellij.openapi.fileEditor.FileEditorManagerListener import com.intellij.openapi.project.Project import com.intellij.openapi.util.Key @@ -65,6 +66,14 @@ class ScriptDependenciesUpdater( private fun listenForChangesInScripts() { project.messageBus.connect().subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, object : FileEditorManagerListener { override fun fileOpened(source: FileEditorManager, file: VirtualFile) { + runScriptDependenciesUpdateIfNeeded(file) + } + + override fun selectionChanged(event: FileEditorManagerEvent) { + event.newFile?.let { runScriptDependenciesUpdateIfNeeded(it) } + } + + private fun runScriptDependenciesUpdateIfNeeded(file: VirtualFile) { if (file.fileType != KotlinFileType.INSTANCE) return val scriptDef = scriptDefinitionProvider.findScriptDefinition(file) ?: return val ktFile = PsiManager.getInstance(project).findFile(file) as? KtFile ?: return