mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
in java parameter list display primitive types (IDEA-57517) and don't suggest method names(IDEA-59371)
This commit is contained in:
+6
-7
@@ -97,14 +97,11 @@ public class JavaCompletionContributor extends CompletionContributor {
|
||||
return new AndFilter(ElementClassFilter.CLASS, new NotFilter(new AssignableFromContextFilter()));
|
||||
}
|
||||
|
||||
if (JavaCompletionData.DECLARATION_START.isAcceptable(position, position)) {
|
||||
if (JavaCompletionData.DECLARATION_START.isAcceptable(position, position) ||
|
||||
JavaCompletionData.INSIDE_PARAMETER_LIST.accepts(position)) {
|
||||
return new OrFilter(ElementClassFilter.CLASS, ElementClassFilter.PACKAGE_FILTER);
|
||||
}
|
||||
|
||||
if (JavaCompletionData.INSIDE_PARAMETER_LIST.accepts(position)) {
|
||||
return ElementClassFilter.CLASS;
|
||||
}
|
||||
|
||||
// Completion for classes in method throws section
|
||||
if (psiElement().afterLeaf(PsiKeyword.THROWS, ",").inside(psiElement(PsiReferenceList.class).withParent(PsiMethod.class)).accepts(position)) {
|
||||
return new OrFilter(new ThisOrAnyInnerFilter(new AssignableFromFilter("java.lang.Throwable")), ElementClassFilter.PACKAGE_FILTER);
|
||||
@@ -141,8 +138,10 @@ public class JavaCompletionContributor extends CompletionContributor {
|
||||
}
|
||||
|
||||
if (psiElement().inside(PsiAnnotationParameterList.class).accepts(position)) {
|
||||
return new OrFilter(new ClassFilter(PsiAnnotationMethod.class), ElementClassFilter.CLASS, ElementClassFilter.PACKAGE_FILTER, new AndFilter(new ClassFilter(PsiField.class),
|
||||
new ModifierFilter(PsiModifier.STATIC, PsiModifier.FINAL)));
|
||||
return new OrFilter(new ClassFilter(PsiAnnotationMethod.class),
|
||||
ElementClassFilter.CLASS,
|
||||
ElementClassFilter.PACKAGE_FILTER,
|
||||
new AndFilter(new ClassFilter(PsiField.class), new ModifierFilter(PsiModifier.STATIC, PsiModifier.FINAL)));
|
||||
}
|
||||
|
||||
if (psiElement().afterLeaf("=").inside(PsiVariable.class).accepts(position)) {
|
||||
|
||||
@@ -36,6 +36,7 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
|
||||
import static com.intellij.patterns.PsiJavaPatterns.*;
|
||||
import static com.intellij.patterns.PsiJavaPatterns.psiElement;
|
||||
import static com.intellij.patterns.StandardPatterns.not;
|
||||
|
||||
public class JavaCompletionData extends JavaAwareCompletionData{
|
||||
@@ -62,7 +63,7 @@ public class JavaCompletionData extends JavaAwareCompletionData{
|
||||
public static final PsiJavaElementPattern.Capture<PsiElement> INSIDE_PARAMETER_LIST =
|
||||
PsiJavaPatterns.psiElement().withParent(
|
||||
psiElement(PsiJavaCodeReferenceElement.class).withParent(
|
||||
psiElement(PsiTypeElement.class).withParent(PsiParameterList.class)));
|
||||
psiElement(PsiTypeElement.class).withParent(or(psiElement(PsiParameter.class), psiElement(PsiParameterList.class)))));
|
||||
|
||||
private static final AndFilter START_OF_CODE_FRAGMENT = new AndFilter(
|
||||
new ScopeFilter(new AndFilter(
|
||||
|
||||
+10
@@ -753,4 +753,14 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase {
|
||||
"""
|
||||
}
|
||||
|
||||
public void testNoMethodsInParameterType() {
|
||||
myFixture.configureByText("a.java", """
|
||||
class Foo {
|
||||
static void foo(f<caret>int a) {}
|
||||
}
|
||||
""")
|
||||
myFixture.completeBasic()
|
||||
assertOrderedEquals myFixture.lookupElementStrings, "final", "float"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user