From b610af6c7576b05776408e751f7ef106b00cf939 Mon Sep 17 00:00:00 2001 From: vldf Date: Thu, 24 Jul 2025 16:05:59 +0300 Subject: [PATCH 1/3] set all actions update thread to the BGT --- .../kotlin/com/vk/modulite/actions/NewModuliteAction.kt | 5 +++++ .../com/vk/modulite/actions/NewModuliteFromFolderAction.kt | 5 +++++ .../vk/modulite/actions/RegenerateModuleRequiresAction.kt | 6 +++++- .../vk/modulite/actions/SelectionBasedPsiElementAction.kt | 5 +++++ .../usages/php/FindSymbolUsagesInCurrentModuleAction.kt | 6 +----- .../usages/yaml/FindAllowedSymbolUsagesInModuleAction.kt | 5 ++--- .../usages/yaml/FindModuleUsagesInCurrentModuleAction.kt | 6 ++---- .../usages/yaml/FindSymbolUsagesInCurrentModuleAction.kt | 6 ++---- 8 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt b/src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt index c20036e..7e60ef9 100644 --- a/src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt @@ -1,6 +1,7 @@ package com.vk.modulite.actions import com.intellij.icons.AllIcons +import com.intellij.openapi.actionSystem.ActionUpdateThread import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.CommonDataKeys @@ -16,4 +17,8 @@ class NewModuliteAction : AnAction( val folder = e.getData(CommonDataKeys.VIRTUAL_FILE) ?: return ModuliteBuilder(project).startBuild(folder, fromSource = false) } + + override fun getActionUpdateThread(): ActionUpdateThread { + return ActionUpdateThread.BGT + } } diff --git a/src/main/kotlin/com/vk/modulite/actions/NewModuliteFromFolderAction.kt b/src/main/kotlin/com/vk/modulite/actions/NewModuliteFromFolderAction.kt index 1968193..728ef7a 100644 --- a/src/main/kotlin/com/vk/modulite/actions/NewModuliteFromFolderAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/NewModuliteFromFolderAction.kt @@ -1,6 +1,7 @@ package com.vk.modulite.actions import com.intellij.icons.AllIcons +import com.intellij.openapi.actionSystem.ActionUpdateThread import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.CommonDataKeys @@ -35,4 +36,8 @@ class NewModuliteFromFolderAction : AnAction( return } } + + override fun getActionUpdateThread(): ActionUpdateThread { + return ActionUpdateThread.BGT + } } diff --git a/src/main/kotlin/com/vk/modulite/actions/RegenerateModuleRequiresAction.kt b/src/main/kotlin/com/vk/modulite/actions/RegenerateModuleRequiresAction.kt index fa1512a..20ce74e 100644 --- a/src/main/kotlin/com/vk/modulite/actions/RegenerateModuleRequiresAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/RegenerateModuleRequiresAction.kt @@ -1,5 +1,6 @@ package com.vk.modulite.actions +import com.intellij.openapi.actionSystem.ActionUpdateThread import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.CommonDataKeys @@ -17,7 +18,10 @@ class RegenerateModuleRequiresAction : AnAction() { val file = e.getData(CommonDataKeys.VIRTUAL_FILE) if (file == null || file.name != ".modulite.yaml") { e.presentation.isEnabledAndVisible = false - return } } + + override fun getActionUpdateThread(): ActionUpdateThread { + return ActionUpdateThread.BGT + } } diff --git a/src/main/kotlin/com/vk/modulite/actions/SelectionBasedPsiElementAction.kt b/src/main/kotlin/com/vk/modulite/actions/SelectionBasedPsiElementAction.kt index 89975dd..7553145 100644 --- a/src/main/kotlin/com/vk/modulite/actions/SelectionBasedPsiElementAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/SelectionBasedPsiElementAction.kt @@ -1,6 +1,7 @@ package com.vk.modulite.actions import com.intellij.codeInsight.hint.HintManager +import com.intellij.openapi.actionSystem.ActionUpdateThread import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.CommonDataKeys @@ -105,6 +106,10 @@ abstract class SelectionBasedPsiElementAction( return PsiTreeUtil.findElementOfClassAtRange(file, selectionStart, selectionEnd, myClass) } + override fun getActionUpdateThread(): ActionUpdateThread { + return ActionUpdateThread.BGT + } + companion object { private fun getEditor(e: AnActionEvent) = e.getData(CommonDataKeys.EDITOR) private fun getPsiFile(e: AnActionEvent) = e.getData(CommonDataKeys.PSI_FILE) diff --git a/src/main/kotlin/com/vk/modulite/actions/usages/php/FindSymbolUsagesInCurrentModuleAction.kt b/src/main/kotlin/com/vk/modulite/actions/usages/php/FindSymbolUsagesInCurrentModuleAction.kt index db2f406..169920e 100644 --- a/src/main/kotlin/com/vk/modulite/actions/usages/php/FindSymbolUsagesInCurrentModuleAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/usages/php/FindSymbolUsagesInCurrentModuleAction.kt @@ -2,11 +2,9 @@ package com.vk.modulite.actions.usages.php import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.CommonDataKeys -import com.intellij.util.SlowOperations import com.jetbrains.php.lang.psi.elements.PhpPsiElement import com.jetbrains.php.lang.psi.elements.Variable import com.vk.modulite.actions.PhpPsiElementAction -import com.vk.modulite.modulite.Modulite import com.vk.modulite.psi.extensions.files.containingModulite class FindSymbolUsagesInCurrentModuleAction : PhpPsiElementAction(PhpPsiElement::class.java) { @@ -20,9 +18,7 @@ class FindSymbolUsagesInCurrentModuleAction : PhpPsiElementAction return } - val modulite = SlowOperations.allowSlowOperations { - e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!) - } + val modulite = e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!) if (modulite == null) { e.presentation.isEnabledAndVisible = false diff --git a/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindAllowedSymbolUsagesInModuleAction.kt b/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindAllowedSymbolUsagesInModuleAction.kt index 4781e12..a1a8500 100644 --- a/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindAllowedSymbolUsagesInModuleAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindAllowedSymbolUsagesInModuleAction.kt @@ -1,5 +1,6 @@ package com.vk.modulite.actions.usages.yaml +import com.intellij.openapi.actionSystem.ActionUpdateThread import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.CommonDataKeys import com.intellij.util.SlowOperations @@ -19,9 +20,7 @@ class FindAllowedSymbolUsagesInModuleAction : YamlPsiElementAction { - e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!) - } + val modulite = e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!) if (element == null || modulite == null) { e.presentation.isEnabledAndVisible = false diff --git a/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindModuleUsagesInCurrentModuleAction.kt b/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindModuleUsagesInCurrentModuleAction.kt index e1a976c..c40e7b6 100644 --- a/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindModuleUsagesInCurrentModuleAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindModuleUsagesInCurrentModuleAction.kt @@ -1,5 +1,6 @@ package com.vk.modulite.actions.usages.yaml +import com.intellij.openapi.actionSystem.ActionUpdateThread import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.CommonDataKeys import com.intellij.psi.PsiElement @@ -40,10 +41,7 @@ class FindModuleUsagesInCurrentModuleAction : YamlPsiElementAction { - e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!) - } + val module = e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!) if (element == null || module == null) { e.presentation.isEnabledAndVisible = false diff --git a/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindSymbolUsagesInCurrentModuleAction.kt b/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindSymbolUsagesInCurrentModuleAction.kt index 97f05be..868499b 100644 --- a/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindSymbolUsagesInCurrentModuleAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindSymbolUsagesInCurrentModuleAction.kt @@ -1,5 +1,6 @@ package com.vk.modulite.actions.usages.yaml +import com.intellij.openapi.actionSystem.ActionUpdateThread import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.CommonDataKeys import com.intellij.util.SlowOperations @@ -15,10 +16,7 @@ class FindSymbolUsagesInCurrentModuleAction : YamlPsiElementAction { - e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!) - } + val modulite = e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!) if (element == null || modulite == null) { e.presentation.isEnabledAndVisible = false From 055bef908829a4cb82c3843f39e138cd85cd1639 Mon Sep 17 00:00:00 2001 From: vldf Date: Fri, 25 Jul 2025 15:08:06 +0300 Subject: [PATCH 2/3] make `getActionUpdateThread` one-line function --- src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt | 4 +--- .../com/vk/modulite/actions/NewModuliteFromFolderAction.kt | 4 +--- .../com/vk/modulite/actions/RegenerateModuleRequiresAction.kt | 4 +--- .../com/vk/modulite/actions/SelectionBasedPsiElementAction.kt | 4 +--- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt b/src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt index 7e60ef9..c10d829 100644 --- a/src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt @@ -18,7 +18,5 @@ class NewModuliteAction : AnAction( ModuliteBuilder(project).startBuild(folder, fromSource = false) } - override fun getActionUpdateThread(): ActionUpdateThread { - return ActionUpdateThread.BGT - } + override fun getActionUpdateThread() = ActionUpdateThread.BGT } diff --git a/src/main/kotlin/com/vk/modulite/actions/NewModuliteFromFolderAction.kt b/src/main/kotlin/com/vk/modulite/actions/NewModuliteFromFolderAction.kt index 728ef7a..df55a5f 100644 --- a/src/main/kotlin/com/vk/modulite/actions/NewModuliteFromFolderAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/NewModuliteFromFolderAction.kt @@ -37,7 +37,5 @@ class NewModuliteFromFolderAction : AnAction( } } - override fun getActionUpdateThread(): ActionUpdateThread { - return ActionUpdateThread.BGT - } + override fun getActionUpdateThread() = ActionUpdateThread.BGT } diff --git a/src/main/kotlin/com/vk/modulite/actions/RegenerateModuleRequiresAction.kt b/src/main/kotlin/com/vk/modulite/actions/RegenerateModuleRequiresAction.kt index 20ce74e..21e4d52 100644 --- a/src/main/kotlin/com/vk/modulite/actions/RegenerateModuleRequiresAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/RegenerateModuleRequiresAction.kt @@ -21,7 +21,5 @@ class RegenerateModuleRequiresAction : AnAction() { } } - override fun getActionUpdateThread(): ActionUpdateThread { - return ActionUpdateThread.BGT - } + override fun getActionUpdateThread() = ActionUpdateThread.BGT } diff --git a/src/main/kotlin/com/vk/modulite/actions/SelectionBasedPsiElementAction.kt b/src/main/kotlin/com/vk/modulite/actions/SelectionBasedPsiElementAction.kt index 7553145..c0c3762 100644 --- a/src/main/kotlin/com/vk/modulite/actions/SelectionBasedPsiElementAction.kt +++ b/src/main/kotlin/com/vk/modulite/actions/SelectionBasedPsiElementAction.kt @@ -106,9 +106,7 @@ abstract class SelectionBasedPsiElementAction( return PsiTreeUtil.findElementOfClassAtRange(file, selectionStart, selectionEnd, myClass) } - override fun getActionUpdateThread(): ActionUpdateThread { - return ActionUpdateThread.BGT - } + override fun getActionUpdateThread() = ActionUpdateThread.BGT companion object { private fun getEditor(e: AnActionEvent) = e.getData(CommonDataKeys.EDITOR) From 54106776ecd7d47272fc1fe2c3f42484454a7729 Mon Sep 17 00:00:00 2001 From: vldf Date: Mon, 28 Jul 2025 10:52:11 +0300 Subject: [PATCH 3/3] Add TODO to UsagesBaseFinder --- .../com/vk/modulite/actions/usages/base/UsagesBaseFinder.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/kotlin/com/vk/modulite/actions/usages/base/UsagesBaseFinder.kt b/src/main/kotlin/com/vk/modulite/actions/usages/base/UsagesBaseFinder.kt index 0b2169d..53f0d3b 100644 --- a/src/main/kotlin/com/vk/modulite/actions/usages/base/UsagesBaseFinder.kt +++ b/src/main/kotlin/com/vk/modulite/actions/usages/base/UsagesBaseFinder.kt @@ -60,6 +60,7 @@ abstract class UsagesBaseFinder { it is DefaultSearchScopeProviders.CustomNamed } ?: return + // TODO: remove `allowSlowOperations` val scopes = SlowOperations.allowSlowOperations, RuntimeException> { provider.getSearchScopes( element.project,