mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
no irrelevant java completion inside comments (IDEA-153683)
This commit is contained in:
+37
-24
@@ -224,14 +224,49 @@ public class JavaCompletionContributor extends CompletionContributor {
|
||||
return;
|
||||
}
|
||||
|
||||
PrefixMatcher matcher = result.getPrefixMatcher();
|
||||
PsiElement parent = position.getParent();
|
||||
|
||||
final InheritorsHolder inheritors = new InheritorsHolder(result);
|
||||
if (position instanceof PsiIdentifier) {
|
||||
addIdentifierVariants(parameters, position, result, matcher, parent, inheritors);
|
||||
}
|
||||
|
||||
Set<String> usedWords = addReferenceVariants(parameters, result, inheritors);
|
||||
|
||||
if (psiElement().inside(PsiLiteralExpression.class).accepts(position)) {
|
||||
PsiReference reference = position.getContainingFile().findReferenceAt(parameters.getOffset());
|
||||
if (reference == null || reference.isSoft()) {
|
||||
WordCompletionContributor.addWordCompletionVariants(result, parameters, usedWords);
|
||||
}
|
||||
}
|
||||
|
||||
if (position instanceof PsiIdentifier) {
|
||||
JavaGenerateMemberCompletionContributor.fillCompletionVariants(parameters, result);
|
||||
}
|
||||
|
||||
addAllClasses(parameters, result, inheritors);
|
||||
|
||||
if (position instanceof PsiIdentifier &&
|
||||
parent instanceof PsiReferenceExpression &&
|
||||
!((PsiReferenceExpression)parent).isQualified() &&
|
||||
parameters.isExtendedCompletion() &&
|
||||
StringUtil.isNotEmpty(matcher.getPrefix())) {
|
||||
new JavaStaticMemberProcessor(parameters).processStaticMethodsGlobally(matcher, result);
|
||||
}
|
||||
result.stopHere();
|
||||
}
|
||||
|
||||
private static void addIdentifierVariants(@NotNull CompletionParameters parameters,
|
||||
PsiElement position,
|
||||
final CompletionResultSet result,
|
||||
PrefixMatcher matcher, PsiElement parent, final InheritorsHolder inheritors) {
|
||||
if (TypeArgumentCompletionProvider.IN_TYPE_ARGS.accepts(position)) {
|
||||
new TypeArgumentCompletionProvider(false, inheritors).addCompletions(parameters, new ProcessingContext(), result);
|
||||
}
|
||||
|
||||
result.addAllElements(FunctionalExpressionCompletionProvider.getLambdaVariants(parameters, true));
|
||||
|
||||
PrefixMatcher matcher = result.getPrefixMatcher();
|
||||
if (JavaSmartCompletionContributor.AFTER_NEW.accepts(position)) {
|
||||
new JavaInheritorsGetter(ConstructorInsertHandler.BASIC_INSTANCE).generateVariants(parameters, matcher, inheritors);
|
||||
}
|
||||
@@ -256,10 +291,9 @@ public class JavaCompletionContributor extends CompletionContributor {
|
||||
});
|
||||
}
|
||||
|
||||
PsiElement parent = position.getParent();
|
||||
if (parent instanceof PsiReferenceExpression) {
|
||||
final List<ExpectedTypeInfo> expected = Arrays.asList(ExpectedTypesProvider.getExpectedTypes((PsiExpression)parent, true));
|
||||
CollectConversion.addCollectConversion((PsiReferenceExpression)parent, expected,
|
||||
CollectConversion.addCollectConversion((PsiReferenceExpression)parent, expected,
|
||||
JavaSmartCompletionContributor.decorateWithoutTypeCheck(result, expected));
|
||||
}
|
||||
|
||||
@@ -270,27 +304,6 @@ public class JavaCompletionContributor extends CompletionContributor {
|
||||
addKeywords(parameters, result);
|
||||
|
||||
addExpressionVariants(parameters, position, result);
|
||||
|
||||
Set<String> usedWords = addReferenceVariants(parameters, result, inheritors);
|
||||
|
||||
if (psiElement().inside(PsiLiteralExpression.class).accepts(position)) {
|
||||
PsiReference reference = position.getContainingFile().findReferenceAt(parameters.getOffset());
|
||||
if (reference == null || reference.isSoft()) {
|
||||
WordCompletionContributor.addWordCompletionVariants(result, parameters, usedWords);
|
||||
}
|
||||
}
|
||||
|
||||
JavaGenerateMemberCompletionContributor.fillCompletionVariants(parameters, result);
|
||||
|
||||
addAllClasses(parameters, result, inheritors);
|
||||
|
||||
if (parent instanceof PsiReferenceExpression &&
|
||||
!((PsiReferenceExpression)parent).isQualified() &&
|
||||
parameters.isExtendedCompletion() &&
|
||||
StringUtil.isNotEmpty(matcher.getPrefix())) {
|
||||
new JavaStaticMemberProcessor(parameters).processStaticMethodsGlobally(matcher, result);
|
||||
}
|
||||
result.stopHere();
|
||||
}
|
||||
|
||||
private static void registerClassFromTypeElement(LookupElement element, InheritorsHolder inheritors) {
|
||||
|
||||
+4
@@ -249,6 +249,10 @@ public class JavaSmartCompletionContributor extends CompletionContributor {
|
||||
|
||||
@Override
|
||||
public void fillCompletionVariants(@NotNull CompletionParameters parameters, @NotNull CompletionResultSet result) {
|
||||
if (parameters.getPosition() instanceof PsiComment) {
|
||||
return;
|
||||
}
|
||||
|
||||
super.fillCompletionVariants(parameters, JavaCompletionSorting.addJavaSorting(parameters, result));
|
||||
}
|
||||
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
import java.util.*;
|
||||
|
||||
class Foo {
|
||||
void m() {
|
||||
Arrays.asList("a", "b").stream().
|
||||
// co<caret>
|
||||
someCall();
|
||||
}
|
||||
}
|
||||
+2
@@ -241,4 +241,6 @@ class Test88 {
|
||||
myFixture.assertPreferredCompletionItems(0, 'toString', 'wait')
|
||||
}
|
||||
public void testUnexpectedLambdaInAmbiguousCall() { doAntiTest() }
|
||||
|
||||
public void testNoCollectorsInComment() { doAntiTest() }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user