mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
don't show java class names in js on second completion
This commit is contained in:
+16
-3
@@ -22,6 +22,7 @@ import com.intellij.lang.LangBundle;
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.openapi.actionSystem.IdeActions;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.fileTypes.impl.CustomSyntaxTableFileType;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.patterns.PsiJavaElementPattern;
|
||||
@@ -52,10 +53,10 @@ public class JavaClassNameCompletionContributor extends CompletionContributor {
|
||||
|
||||
@Override
|
||||
public void fillCompletionVariants(CompletionParameters parameters, final CompletionResultSet _result) {
|
||||
if (parameters.isExtendedCompletion()) {
|
||||
if (parameters.getCompletionType() == CompletionType.CLASS_NAME ||
|
||||
parameters.isExtendedCompletion() && mayContainClassName(parameters)) {
|
||||
CompletionResultSet result = _result.withPrefixMatcher(CompletionUtil.findReferenceOrAlphanumericPrefix(parameters));
|
||||
addAllClasses(parameters, parameters.getInvocationCount() <= 1,
|
||||
JavaCompletionSorting.addJavaSorting(parameters, result).getPrefixMatcher(), new Consumer<LookupElement>() {
|
||||
addAllClasses(parameters, parameters.getInvocationCount() <= 1, result.getPrefixMatcher(), new Consumer<LookupElement>() {
|
||||
@Override
|
||||
public void consume(LookupElement element) {
|
||||
_result.addElement(element);
|
||||
@@ -64,6 +65,18 @@ public class JavaClassNameCompletionContributor extends CompletionContributor {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean mayContainClassName(CompletionParameters parameters) {
|
||||
PsiElement position = parameters.getPosition();
|
||||
PsiFile file = position.getContainingFile();
|
||||
if (file instanceof PsiPlainTextFile || file.getFileType() instanceof CustomSyntaxTableFileType) {
|
||||
return true;
|
||||
}
|
||||
if (SkipAutopopupInStrings.isInStringLiteral(position)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void addAllClasses(CompletionParameters parameters,
|
||||
final boolean filterByScope,
|
||||
@NotNull final PrefixMatcher matcher,
|
||||
|
||||
+2
-14
@@ -29,8 +29,7 @@ public class XmlBasicToClassNameDelegator extends CompletionContributor {
|
||||
@Override
|
||||
public void fillCompletionVariants(CompletionParameters parameters, final CompletionResultSet result) {
|
||||
PsiElement position = parameters.getPosition();
|
||||
if (parameters.getCompletionType() != CompletionType.BASIC ||
|
||||
!JavaCompletionContributor.mayStartClassName(result) ||
|
||||
if (!JavaCompletionContributor.mayStartClassName(result) ||
|
||||
!position.getContainingFile().getLanguage().isKindOf(StdLanguages.XML)) {
|
||||
return;
|
||||
}
|
||||
@@ -42,18 +41,7 @@ public class XmlBasicToClassNameDelegator extends CompletionContributor {
|
||||
}
|
||||
|
||||
if (empty || parameters.isExtendedCompletion()) {
|
||||
final int invocationCount = parameters.getInvocationCount();
|
||||
CompletionParameters classParams;
|
||||
if (empty) {
|
||||
classParams = parameters.withType(CompletionType.CLASS_NAME);
|
||||
}
|
||||
else if (invocationCount > 1) {
|
||||
classParams = parameters.withType(CompletionType.CLASS_NAME).withInvocationCount(invocationCount - 1);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
CompletionService.getCompletionService().getVariantsFromContributors(classParams, null, new Consumer<CompletionResult>() {
|
||||
CompletionService.getCompletionService().getVariantsFromContributors(parameters.delegateToClassName(), null, new Consumer<CompletionResult>() {
|
||||
public void consume(final CompletionResult completionResult) {
|
||||
LookupElement lookupElement = completionResult.getLookupElement();
|
||||
JavaPsiClassReferenceElement classElement = lookupElement.as(JavaPsiClassReferenceElement.CLASS_CONDITION_KEY);
|
||||
|
||||
Reference in New Issue
Block a user