From ab4a1ac05ef7f82148f1dc43aede6d5c7fb679c7 Mon Sep 17 00:00:00 2001 From: Michail Plushnikov Date: Tue, 10 Sep 2024 21:49:14 +0200 Subject: [PATCH] [lombok] IDEA-353757 Fix Quick-fix "Annotate method as '@SneakyThrows' " available in non-Lombok project GitOrigin-RevId: f0e7075b2310057725c374ed423fbdc79a529457 --- .../handler/AddSneakyThrowsAnnotationCommandAction.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/handler/AddSneakyThrowsAnnotationCommandAction.java b/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/handler/AddSneakyThrowsAnnotationCommandAction.java index c89cdcba7df3..5614e5386cfc 100644 --- a/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/handler/AddSneakyThrowsAnnotationCommandAction.java +++ b/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/handler/AddSneakyThrowsAnnotationCommandAction.java @@ -7,11 +7,14 @@ import com.intellij.modcommand.ActionContext; import com.intellij.modcommand.ModPsiUpdater; import com.intellij.modcommand.Presentation; import com.intellij.modcommand.PsiUpdateModCommandAction; +import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.psi.*; import com.intellij.psi.codeStyle.JavaCodeStyleManager; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.JavaPsiConstructorUtil; import de.plushnikov.intellij.plugin.LombokClassNames; +import de.plushnikov.intellij.plugin.util.LombokLibraryUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -31,6 +34,11 @@ public class AddSneakyThrowsAnnotationCommandAction extends PsiUpdateModCommandA @Override protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiElement element) { + Module module = ModuleUtilCore.findModuleForPsiElement(element); + if (!LombokLibraryUtil.hasLombokClasses(module)) { + return null; + } + PsiElement importantParent = PsiTreeUtil.getParentOfType(element, PsiMethod.class, PsiLambdaExpression.class, PsiMethodReferenceExpression.class, PsiClassInitializer.class);