mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java completion: show only accessible constructors, make array braces non-grayed (IDEA-CR-13383)
This commit is contained in:
@@ -565,7 +565,7 @@ public class JavaCompletionUtil {
|
||||
return methods.length == 0 || Arrays.stream(methods).anyMatch(JavaCompletionUtil::isConstructorCompletable);
|
||||
}
|
||||
|
||||
static boolean isConstructorCompletable(@NotNull PsiMethod constructor) {
|
||||
private static boolean isConstructorCompletable(@NotNull PsiMethod constructor) {
|
||||
return !(constructor instanceof PsiCompiledElement) || !constructor.hasModifierProperty(PsiModifier.PRIVATE);
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -22,6 +22,7 @@ import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.resolve.JavaResolveUtil;
|
||||
import com.intellij.psi.util.CachedValueProvider;
|
||||
import com.intellij.psi.util.CachedValuesManager;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
@@ -94,7 +95,7 @@ public class JavaConstructorCallElement extends JavaMethodCallElement {
|
||||
PsiMethod[] constructors = psiClass.getConstructors();
|
||||
if (constructors.length > 0) {
|
||||
return JBIterable.of(constructors).
|
||||
filter(JavaCompletionUtil::isConstructorCompletable).
|
||||
filter(c -> JavaResolveUtil.isAccessible(c, psiClass, c.getModifierList(), position, null, null)).
|
||||
map(c -> new JavaConstructorCallElement(classItem, c, type)).
|
||||
toList();
|
||||
}
|
||||
|
||||
@@ -34,7 +34,9 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@@ -284,7 +286,12 @@ public class PsiTypeLookupItem extends LookupItem implements TypedLookupItem {
|
||||
|
||||
}
|
||||
if (myBracketsCount > 0) {
|
||||
presentation.setTailText(StringUtil.repeat("[]", myBracketsCount) + StringUtil.notNullize(presentation.getTailText()), true);
|
||||
List<LookupElementPresentation.TextFragment> tail = new ArrayList<>(presentation.getTailFragments());
|
||||
presentation.clearTail();
|
||||
presentation.appendTailText(StringUtil.repeat("[]", myBracketsCount), false);
|
||||
for (LookupElementPresentation.TextFragment fragment : tail) {
|
||||
presentation.appendTailText(fragment.text, fragment.isGrayed());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user