Skip to content

Commit 46503ac

Browse files
authored
use ActionUpdateThread.BGT in actions to fix IDE errors (#65)
* set all actions update thread to the BGT * make `getActionUpdateThread` one-line function * Add TODO to UsagesBaseFinder
1 parent 6fc21c3 commit 46503ac

9 files changed

+20
-17
lines changed

src/main/kotlin/com/vk/modulite/actions/NewModuliteAction.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.vk.modulite.actions
22

33
import com.intellij.icons.AllIcons
4+
import com.intellij.openapi.actionSystem.ActionUpdateThread
45
import com.intellij.openapi.actionSystem.AnAction
56
import com.intellij.openapi.actionSystem.AnActionEvent
67
import com.intellij.openapi.actionSystem.CommonDataKeys
@@ -16,4 +17,6 @@ class NewModuliteAction : AnAction(
1617
val folder = e.getData(CommonDataKeys.VIRTUAL_FILE) ?: return
1718
ModuliteBuilder(project).startBuild(folder, fromSource = false)
1819
}
20+
21+
override fun getActionUpdateThread() = ActionUpdateThread.BGT
1922
}

src/main/kotlin/com/vk/modulite/actions/NewModuliteFromFolderAction.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.vk.modulite.actions
22

33
import com.intellij.icons.AllIcons
4+
import com.intellij.openapi.actionSystem.ActionUpdateThread
45
import com.intellij.openapi.actionSystem.AnAction
56
import com.intellij.openapi.actionSystem.AnActionEvent
67
import com.intellij.openapi.actionSystem.CommonDataKeys
@@ -35,4 +36,6 @@ class NewModuliteFromFolderAction : AnAction(
3536
return
3637
}
3738
}
39+
40+
override fun getActionUpdateThread() = ActionUpdateThread.BGT
3841
}

src/main/kotlin/com/vk/modulite/actions/RegenerateModuleRequiresAction.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.vk.modulite.actions
22

3+
import com.intellij.openapi.actionSystem.ActionUpdateThread
34
import com.intellij.openapi.actionSystem.AnAction
45
import com.intellij.openapi.actionSystem.AnActionEvent
56
import com.intellij.openapi.actionSystem.CommonDataKeys
@@ -17,7 +18,8 @@ class RegenerateModuleRequiresAction : AnAction() {
1718
val file = e.getData(CommonDataKeys.VIRTUAL_FILE)
1819
if (file == null || file.name != ".modulite.yaml") {
1920
e.presentation.isEnabledAndVisible = false
20-
return
2121
}
2222
}
23+
24+
override fun getActionUpdateThread() = ActionUpdateThread.BGT
2325
}

src/main/kotlin/com/vk/modulite/actions/SelectionBasedPsiElementAction.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.vk.modulite.actions
22

33
import com.intellij.codeInsight.hint.HintManager
4+
import com.intellij.openapi.actionSystem.ActionUpdateThread
45
import com.intellij.openapi.actionSystem.AnAction
56
import com.intellij.openapi.actionSystem.AnActionEvent
67
import com.intellij.openapi.actionSystem.CommonDataKeys
@@ -105,6 +106,8 @@ abstract class SelectionBasedPsiElementAction<T : PsiElement>(
105106
return PsiTreeUtil.findElementOfClassAtRange(file, selectionStart, selectionEnd, myClass)
106107
}
107108

109+
override fun getActionUpdateThread() = ActionUpdateThread.BGT
110+
108111
companion object {
109112
private fun getEditor(e: AnActionEvent) = e.getData(CommonDataKeys.EDITOR)
110113
private fun getPsiFile(e: AnActionEvent) = e.getData(CommonDataKeys.PSI_FILE)

src/main/kotlin/com/vk/modulite/actions/usages/base/UsagesBaseFinder.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ abstract class UsagesBaseFinder {
6060
it is DefaultSearchScopeProviders.CustomNamed
6161
} ?: return
6262

63+
// TODO: remove `allowSlowOperations`
6364
val scopes = SlowOperations.allowSlowOperations<List<SearchScope>, RuntimeException> {
6465
provider.getSearchScopes(
6566
element.project,

src/main/kotlin/com/vk/modulite/actions/usages/php/FindSymbolUsagesInCurrentModuleAction.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ package com.vk.modulite.actions.usages.php
22

33
import com.intellij.openapi.actionSystem.AnActionEvent
44
import com.intellij.openapi.actionSystem.CommonDataKeys
5-
import com.intellij.util.SlowOperations
65
import com.jetbrains.php.lang.psi.elements.PhpPsiElement
76
import com.jetbrains.php.lang.psi.elements.Variable
87
import com.vk.modulite.actions.PhpPsiElementAction
9-
import com.vk.modulite.modulite.Modulite
108
import com.vk.modulite.psi.extensions.files.containingModulite
119

1210
class FindSymbolUsagesInCurrentModuleAction : PhpPsiElementAction<PhpPsiElement>(PhpPsiElement::class.java) {
@@ -20,9 +18,7 @@ class FindSymbolUsagesInCurrentModuleAction : PhpPsiElementAction<PhpPsiElement>
2018
return
2119
}
2220

23-
val modulite = SlowOperations.allowSlowOperations<Modulite?, RuntimeException> {
24-
e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!)
25-
}
21+
val modulite = e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!)
2622

2723
if (modulite == null) {
2824
e.presentation.isEnabledAndVisible = false

src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindAllowedSymbolUsagesInModuleAction.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.vk.modulite.actions.usages.yaml
22

3+
import com.intellij.openapi.actionSystem.ActionUpdateThread
34
import com.intellij.openapi.actionSystem.AnActionEvent
45
import com.intellij.openapi.actionSystem.CommonDataKeys
56
import com.intellij.util.SlowOperations
@@ -19,9 +20,7 @@ class FindAllowedSymbolUsagesInModuleAction : YamlPsiElementAction<YAMLQuotedTex
1920
}
2021

2122
override fun update(e: AnActionEvent, element: YAMLQuotedText?) {
22-
val modulite = SlowOperations.allowSlowOperations<Modulite?, RuntimeException> {
23-
e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!)
24-
}
23+
val modulite = e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!)
2524

2625
if (element == null || modulite == null) {
2726
e.presentation.isEnabledAndVisible = false

src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindModuleUsagesInCurrentModuleAction.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.vk.modulite.actions.usages.yaml
22

3+
import com.intellij.openapi.actionSystem.ActionUpdateThread
34
import com.intellij.openapi.actionSystem.AnActionEvent
45
import com.intellij.openapi.actionSystem.CommonDataKeys
56
import com.intellij.psi.PsiElement
@@ -40,10 +41,7 @@ class FindModuleUsagesInCurrentModuleAction : YamlPsiElementAction<YAMLQuotedTex
4041
}
4142

4243
override fun update(e: AnActionEvent, element: YAMLQuotedText?) {
43-
val module =
44-
SlowOperations.allowSlowOperations<Modulite?, RuntimeException> {
45-
e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!)
46-
}
44+
val module = e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!)
4745

4846
if (element == null || module == null) {
4947
e.presentation.isEnabledAndVisible = false

src/main/kotlin/com/vk/modulite/actions/usages/yaml/FindSymbolUsagesInCurrentModuleAction.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.vk.modulite.actions.usages.yaml
22

3+
import com.intellij.openapi.actionSystem.ActionUpdateThread
34
import com.intellij.openapi.actionSystem.AnActionEvent
45
import com.intellij.openapi.actionSystem.CommonDataKeys
56
import com.intellij.util.SlowOperations
@@ -15,10 +16,7 @@ class FindSymbolUsagesInCurrentModuleAction : YamlPsiElementAction<YAMLQuotedTex
1516
}
1617

1718
override fun update(e: AnActionEvent, element: YAMLQuotedText?) {
18-
val modulite =
19-
SlowOperations.allowSlowOperations<Modulite?, RuntimeException> {
20-
e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!)
21-
}
19+
val modulite = e.getData(CommonDataKeys.VIRTUAL_FILE)?.containingModulite(e.project!!)
2220

2321
if (element == null || modulite == null) {
2422
e.presentation.isEnabledAndVisible = false

0 commit comments

Comments
 (0)