Run script dependencies update on editor focus change
^KT-24588 Fixed
This commit is contained in:
@@ -23,6 +23,7 @@ import com.intellij.openapi.editor.event.DocumentEvent
|
|||||||
import com.intellij.openapi.editor.event.DocumentListener
|
import com.intellij.openapi.editor.event.DocumentListener
|
||||||
import com.intellij.openapi.fileEditor.FileDocumentManager
|
import com.intellij.openapi.fileEditor.FileDocumentManager
|
||||||
import com.intellij.openapi.fileEditor.FileEditorManager
|
import com.intellij.openapi.fileEditor.FileEditorManager
|
||||||
|
import com.intellij.openapi.fileEditor.FileEditorManagerEvent
|
||||||
import com.intellij.openapi.fileEditor.FileEditorManagerListener
|
import com.intellij.openapi.fileEditor.FileEditorManagerListener
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.util.Key
|
import com.intellij.openapi.util.Key
|
||||||
@@ -65,6 +66,14 @@ class ScriptDependenciesUpdater(
|
|||||||
private fun listenForChangesInScripts() {
|
private fun listenForChangesInScripts() {
|
||||||
project.messageBus.connect().subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, object : FileEditorManagerListener {
|
project.messageBus.connect().subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, object : FileEditorManagerListener {
|
||||||
override fun fileOpened(source: FileEditorManager, file: VirtualFile) {
|
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
|
if (file.fileType != KotlinFileType.INSTANCE) return
|
||||||
val scriptDef = scriptDefinitionProvider.findScriptDefinition(file) ?: return
|
val scriptDef = scriptDefinitionProvider.findScriptDefinition(file) ?: return
|
||||||
val ktFile = PsiManager.getInstance(project).findFile(file) as? KtFile ?: return
|
val ktFile = PsiManager.getInstance(project).findFile(file) as? KtFile ?: return
|
||||||
|
|||||||
Reference in New Issue
Block a user