IDEA-209627 Completion: method modifiers are not suggested for method if the previous method does not have semicolon

GitOrigin-RevId: 2f37ffd3fe6cec0d51d9f469cec8bb5acb7327c3
This commit is contained in:
peter
2019-05-23 20:56:22 +03:00
committed by intellij-monorepo-bot
parent 90b01d96fc
commit 9fae508cc4
3 changed files with 14 additions and 3 deletions
@@ -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;
@@ -0,0 +1,7 @@
interface Foo {
void foo()
/**
foo bar
*/
<caret>void bar()
}
@@ -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"); }