diff --git a/java/java-impl-refactorings/src/com/intellij/java/refactoring/suggested/JavaSuggestedRefactoringStateChanges.kt b/java/java-impl-refactorings/src/com/intellij/java/refactoring/suggested/JavaSuggestedRefactoringStateChanges.kt index ec7609dbce62..cf84803512ac 100644 --- a/java/java-impl-refactorings/src/com/intellij/java/refactoring/suggested/JavaSuggestedRefactoringStateChanges.kt +++ b/java/java-impl-refactorings/src/com/intellij/java/refactoring/suggested/JavaSuggestedRefactoringStateChanges.kt @@ -1,6 +1,7 @@ // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.java.refactoring.suggested +import com.intellij.openapi.project.DumbService import com.intellij.openapi.util.TextRange import com.intellij.psi.* import com.intellij.refactoring.suggested.SuggestedRefactoringState @@ -12,6 +13,8 @@ import com.intellij.refactoring.suggested.SuggestedRefactoringSupport.Signature class JavaSuggestedRefactoringStateChanges(refactoringSupport: SuggestedRefactoringSupport) : SuggestedRefactoringStateChanges(refactoringSupport) { override fun createInitialState(anchor: PsiElement): SuggestedRefactoringState? { + //todo make SuggestedRefactoringSupport dumbAware + if (DumbService.isDumb(anchor.project)) return null val state = super.createInitialState(anchor) ?: return null if (anchor is PsiMember && isDuplicate(anchor, state.oldSignature)) return null return state diff --git a/java/java-impl-refactorings/src/com/intellij/java/refactoring/suggested/JavaSuggestedRefactoringSupport.kt b/java/java-impl-refactorings/src/com/intellij/java/refactoring/suggested/JavaSuggestedRefactoringSupport.kt index 90068b2efa5d..50a05a34a613 100644 --- a/java/java-impl-refactorings/src/com/intellij/java/refactoring/suggested/JavaSuggestedRefactoringSupport.kt +++ b/java/java-impl-refactorings/src/com/intellij/java/refactoring/suggested/JavaSuggestedRefactoringSupport.kt @@ -2,6 +2,7 @@ package com.intellij.java.refactoring.suggested import com.intellij.codeInsight.generation.OverrideImplementsAnnotationsHandler +import com.intellij.openapi.project.DumbService import com.intellij.openapi.util.TextRange import com.intellij.openapi.util.registry.Registry import com.intellij.psi.* @@ -15,6 +16,9 @@ import com.siyeh.ig.psiutils.TypeUtils class JavaSuggestedRefactoringSupport : SuggestedRefactoringSupport { override fun isAnchor(psiElement: PsiElement): Boolean { + //todo make SuggestedRefactoringSupport dumbAware + if (DumbService.isDumb(psiElement.project)) return false + if (psiElement is PsiCallExpression && Registry.`is`("ide.java.refactoring.suggested.call.site")) { return psiElement.argumentList != null } diff --git a/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/util/DumbIncompleteModeUtil.java b/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/util/DumbIncompleteModeUtil.java index 5d669aec6af4..1168fbf10185 100644 --- a/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/util/DumbIncompleteModeUtil.java +++ b/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/util/DumbIncompleteModeUtil.java @@ -29,8 +29,12 @@ public final class DumbIncompleteModeUtil { public static boolean isDumbOrIncompleteMode(@NotNull PsiElement context) { Project project = context.getProject(); + return isDumbOrIncompleteMode(project); + } + + public static boolean isDumbOrIncompleteMode(@NotNull Project project) { return (DumbService.isDumb(project) && Registry.is("lombok.dumb.mode.enabled", false)) || - isIncompleteMode(context.getProject()); + isIncompleteMode(project); } /** diff --git a/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/util/LombokLibraryUtil.java b/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/util/LombokLibraryUtil.java index 6cfd12b35190..a23e7e713ea2 100644 --- a/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/util/LombokLibraryUtil.java +++ b/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/util/LombokLibraryUtil.java @@ -5,6 +5,7 @@ import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; import com.intellij.openapi.progress.ProcessCanceledException; +import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.OrderEntry; import com.intellij.openapi.roots.OrderEnumerator; @@ -38,7 +39,7 @@ public final class LombokLibraryUtil { ThreadingAssertions.assertReadAccess(); return JavaLibraryUtil.hasLibraryJar(project, "org.projectlombok:lombok") - || detectLombokJarsSlow(project); + || (!DumbService.isDumb(project) && detectLombokJarsSlow(project)); } public static boolean hasLombokClasses(@Nullable Module module) {