From b01b60a8a2cc74f9b6c9a0c172efc627648ddabc Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Wed, 2 Aug 2023 15:36:01 +0200 Subject: [PATCH] java: "Add Javadoc" intention should not be available on local classes (IDEA-327296) GitOrigin-RevId: c299d811b9e4a3f532003cc351531787c9574000 --- .../codeInsight/intention/impl/AddJavadocIntention.java | 6 +++++- .../codeInsight/addJavadoc/beforeLocalClass.java | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/addJavadoc/beforeLocalClass.java diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddJavadocIntention.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddJavadocIntention.java index 7575b96f3ee1..b8e8c6b89253 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddJavadocIntention.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddJavadocIntention.java @@ -1,4 +1,4 @@ -// Copyright 2000-2017 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. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.codeInsight.intention.impl; import com.intellij.codeInsight.editorActions.FixDocCommentAction; @@ -11,6 +11,7 @@ import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.psi.util.PsiUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; @@ -29,6 +30,9 @@ public class AddJavadocIntention extends BaseElementAtCaretIntentionAction imple if (targetElement instanceof PsiVariable && PsiTreeUtil.isAncestor(((PsiVariable)targetElement).getInitializer(), element, false)) { return false; } + if ( targetElement instanceof PsiClass aClass && PsiUtil.isLocalClass(aClass)) { + return false; + } if (targetElement instanceof PsiJavaDocumentedElement && !(targetElement instanceof PsiTypeParameter) && !(targetElement instanceof PsiAnonymousClass)) { diff --git a/java/java-tests/testData/codeInsight/addJavadoc/beforeLocalClass.java b/java/java-tests/testData/codeInsight/addJavadoc/beforeLocalClass.java new file mode 100644 index 000000000000..098c5f3ee30e --- /dev/null +++ b/java/java-tests/testData/codeInsight/addJavadoc/beforeLocalClass.java @@ -0,0 +1,9 @@ +// "Add Javadoc" "false" + +class Test { + + void x() { + class Local {} + } + +} \ No newline at end of file