mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
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:
committed by
intellij-monorepo-bot
parent
90b01d96fc
commit
9fae508cc4
@@ -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;
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
interface Foo {
|
||||
void foo()
|
||||
/**
|
||||
foo bar
|
||||
*/
|
||||
<caret>void bar()
|
||||
}
|
||||
+1
@@ -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"); }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user