diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java index 3a7643c15eea..cc6780fe1ccf 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java @@ -15,6 +15,7 @@ import com.intellij.pom.java.LanguageLevel; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.filters.FilterPositionUtil; +import com.intellij.psi.javadoc.PsiDocComment; import com.intellij.psi.templateLanguages.OuterLanguageElement; import com.intellij.psi.util.InheritanceUtil; import com.intellij.psi.util.PsiTreeUtil; @@ -70,9 +71,11 @@ public class JavaKeywordCompletion { if (psiElement().withText(string().oneOf("{", "}", ";", ":", "else")).accepts(prev)) return true; if (prev.textMatches(")")) { PsiElement parent = prev.getParent(); - return !(parent instanceof PsiExpressionList || - parent instanceof PsiParameterList || - parent instanceof PsiTypeCastExpression); + if (parent instanceof PsiParameterList) { + return PsiTreeUtil.getParentOfType(PsiTreeUtil.prevVisibleLeaf(element), PsiDocComment.class) != null; + } + + return !(parent instanceof PsiExpressionList || parent instanceof PsiTypeCastExpression); } return false; diff --git a/java/java-tests/testData/codeInsight/completion/keywords/suggestModifiersAfterUnfinishedMethod.java b/java/java-tests/testData/codeInsight/completion/keywords/suggestModifiersAfterUnfinishedMethod.java new file mode 100644 index 000000000000..7fe2cdaf7bf2 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/keywords/suggestModifiersAfterUnfinishedMethod.java @@ -0,0 +1,7 @@ +interface Foo { + void foo() + /** + foo bar + */ + void bar() +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java index 89e970fd1d98..7fd78c540c49 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java @@ -165,6 +165,7 @@ public class KeywordCompletionTest extends LightCompletionTestCase { public void testPrimitiveInEnumConstructorCast() { doTest(1, "int"); } public void testNoStatementInForLoopCondition() { doTest(0, "synchronized", "if"); } public void testNoStatementInForLoopUpdate() { doTest(0, "synchronized", "if"); } + public void testSuggestModifiersAfterUnfinishedMethod() { doTest(1, "public"); } public void testPrivateInJava9Interface() { setLanguageLevel(LanguageLevel.JDK_1_9); doTest(); } public void testQualifiedNew() { doTest(1, "new"); }