.replace(CompletionInitializationContext.DUMMY_IDENTIFIER, "") .replace(CompletionInitializationContext.DUMMY_IDENTIFIER_TRIMMED, ""); result = result.withPrefixMatcher(new PlainPrefixMatcher(fullPrefix));
@Override protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet result) { if (parameters.getInvocationCount() > 0) { if (isEmptyComment(parameters)) { int priority = 100; for (String section : COMMENT_SECTIONS) { priority--; final LookupElementBuilder elm = LookupElementBuilder.create(" ::" + section + ":: ") .withPresentableText("::" + section + "::"); result.withPrefixMatcher(new PlainPrefixMatcher("")) .addElement(PrioritizedLookupElement.withPriority(elm, priority)); } for (String tag : COMMENT_TAGS) { result.withPrefixMatcher(new PlainPrefixMatcher("")) .addElement(LookupElementBuilder.create(" :" + tag + ": ")); } } else { final PsiFile file = parameters.getOriginalFile(); final MathematicaGlobalResolveCache symbolCache = MathematicaGlobalResolveCache.getInstance(file.getProject()); final List<String> cachedDefinitions = symbolCache.getCachedFileSymbolNames(file); for (String definition : cachedDefinitions) { result.addElement(LookupElementBuilder.create(definition)); } } } }
@Override protected void addCompletions(@NotNull CompletionParameters parameters, @NotNull ProcessingContext context, @NotNull CompletionResultSet result) { PsiElement method = parameters.getPosition().getParent(); if (!(method instanceof PsiPerlMethod)) { LOG.warn("Expected PsiPerlMethod, got psiElement=[" + method.getClass() + "]; text=[" + method.getText() + "]"); return; } String explicitNamespace = ((PsiPerlMethod)method).getExplicitPackageName(); String currentPrefixMatcher = result.getPrefixMatcher().getPrefix(); String newPrefixMathcer = (explicitNamespace == null ? currentPrefixMatcher : (explicitNamespace + PerlPackageUtil.PACKAGE_SEPARATOR) + currentPrefixMatcher); result = result.withPrefixMatcher(new PlainPrefixMatcher(newPrefixMathcer)); if (!((PsiPerlMethod)method).isObjectMethod()) { PerlPackageCompletionUtil.fillWithAllPackageNamesWithAutocompletion(parameters.getPosition(), result); } else { if (!StringUtil.equals(PerlPackageUtil.SUPER_PACKAGE_FULL, newPrefixMathcer)) { LookupElementBuilder newElement = PerlPackageCompletionUtil.getPackageLookupElementWithAutocomplete(method.getProject(), PerlPackageUtil.SUPER_PACKAGE_FULL, null); newElement.putUserData(PerlCompletionWeighter.WEIGHT, -1); result.addElement(newElement); } } } }
public void addCompletions(@NotNull CompletionParameters parameters, @NotNull ProcessingContext context, @NotNull CompletionResultSet resultSet) { PsiElement variableNameElement = parameters.getPosition(); boolean isDeclaration = VARIABLE_NAME_IN_DECLARATION_PATTERN.accepts(variableNameElement); boolean isFullQualified = PerlPackageUtil.isFullQualifiedName(variableNameElement.getText()); PsiElement originalPosition = parameters.getOriginalPosition(); if (originalPosition instanceof PerlVariableNameElement) { resultSet = resultSet.withPrefixMatcher(new PlainPrefixMatcher(originalPosition.getText())); } // declaration helper if (isDeclaration) { PerlVariableCompletionUtil.fillWithUnresolvedVars((PerlVariableNameElement)variableNameElement, resultSet); } else if (!isFullQualified) { PerlVariableCompletionUtil.fillWithLExicalVariables(variableNameElement, resultSet); } // built ins if (VARIABLE_NAME_IN_LOCAL_DECLARATION_PATTERN.accepts(variableNameElement)) { PerlVariableCompletionUtil.fillWithBuiltInVariables(variableNameElement, resultSet); } // imports if (!isDeclaration && !isFullQualified) { fillWithImportedVariables(variableNameElement, resultSet); } // fqn names if (!isDeclaration) { fillWithFullQualifiedVariables(variableNameElement, resultSet); } }