diff --git a/src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt b/src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt index c20036e..c10d829 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,6 @@ class NewModuliteAction : AnAction( val folder = e.getData(CommonDataKeys.VIRTUAL_FILE) ?: return ModuliteBuilder(project).startBuild(folder, fromSource = false) } + + 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 1968193..df55a5f 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,6 @@ class NewModuliteFromFolderAction : AnAction( return } } + + 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 fa1512a..21e4d52 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,8 @@ 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.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..c0c3762 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,8 @@ abstract class SelectionBasedPsiElementAction( return PsiTreeUtil.findElementOfClassAtRange(file, selectionStart, selectionEnd, myClass) } + override fun getActionUpdateThread() = 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/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, 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