@Override protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet result) { GoImportString importString = PsiTreeUtil.getParentOfType(parameters.getPosition(), GoImportString.class); if (importString == null) return; String path = importString.getPath(); if (path.startsWith("./") || path.startsWith("../")) return; TextRange pathRange = importString.getPathTextRange().shiftRight(importString.getTextRange().getStartOffset()); String newPrefix = parameters.getEditor().getDocument().getText(TextRange.create(pathRange.getStartOffset(), parameters.getOffset())); result = result.withPrefixMatcher(result.getPrefixMatcher().cloneWithPrefix(newPrefix)); Module module = ModuleUtilCore.findModuleForPsiElement(parameters.getOriginalFile()); if (module != null) { addCompletions(result, module, parameters.getOriginalFile(), GoUtil.goPathResolveScope(module, parameters.getOriginalFile()), false); } }
@Override protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet set) { GoReferenceExpressionBase expression = PsiTreeUtil.getParentOfType(parameters.getPosition(), GoReferenceExpressionBase.class); PsiFile originalFile = parameters.getOriginalFile(); if (expression != null) { fillVariantsByReference(expression.getReference(), originalFile, set.withPrefixMatcher(createPrefixMatcher(set.getPrefixMatcher()))); } PsiElement parent = parameters.getPosition().getParent(); if (parent != null) { fillVariantsByReference(parent.getReference(), originalFile, set.withPrefixMatcher(createPrefixMatcher(set.getPrefixMatcher()))); } }
@Override public void fillCompletionVariants(@NotNull CompletionParameters parameters, @NotNull CompletionResultSet result) { PsiElement position = parameters.getPosition(); PsiFile file = parameters.getOriginalFile(); ASTNode node = position.getNode(); if (file instanceof GoFile && position.getParent() instanceof GoPackageClause && node.getElementType() == GoTypes.IDENTIFIER) { boolean isTestFile = GoTestFinder.isTestFile(file); PsiDirectory directory = file.getParent(); String currentPackageName = ((GoFile)file).getPackageName(); Collection<String> packagesInDirectory = GoPackageUtil.getAllPackagesInDirectory(directory, null, true); for (String packageName : packagesInDirectory) { if (!packageName.equals(currentPackageName)) { result.addElement(packageLookup(packageName, GoCompletionUtil.PACKAGE_PRIORITY - 1)); } if (isTestFile) { result.addElement(packageLookup(packageName + GoConstants.TEST_SUFFIX, GoCompletionUtil.PACKAGE_PRIORITY)); } } if (directory != null && ContainerUtil.filter(directory.getFiles(), Conditions.instanceOf(GoFile.class)).size() == 1) { String packageFromDirectory = GoPsiImplUtil.getLocalPackageName(directory.getName()); if (!packageFromDirectory.isEmpty()) { result.addElement(packageLookup(packageFromDirectory, GoCompletionUtil.PACKAGE_PRIORITY - 1)); } } result.addElement(packageLookup(GoConstants.MAIN, GoCompletionUtil.PACKAGE_PRIORITY - 2)); } super.fillCompletionVariants(parameters, result); }
@Override protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet result) { Project project = parameters.getPosition().getProject(); PsiFile file = parameters.getOriginalFile(); PsiDirectory containingDirectory = file.getContainingDirectory(); if (file instanceof GoFile && containingDirectory != null) {
PsiElement parent = position.getParent(); if (prevDot(parent)) return; PsiFile psiFile = parameters.getOriginalFile(); if (!(psiFile instanceof GoFile && parent instanceof GoReferenceExpressionBase)) return; GoFile file = (GoFile)psiFile;
public Optional<SwaggerFileType> getFileType(final CompletionParameters parameters) { final Project project = parameters.getOriginalFile().getProject(); final VirtualFile virtualFile = parameters.getOriginalFile().getVirtualFile(); return getFileType(project, virtualFile); }
public void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet resultSet) { if(!YamlHelper.isRoutingFile(parameters.getOriginalFile())) { return; } super.addCompletions(parameters, context, resultSet); } }
public Optional<OpenApiFileType> getFileType(final CompletionParameters parameters) { final Project project = parameters.getOriginalFile().getProject(); final VirtualFile virtualFile = parameters.getOriginalFile().getVirtualFile(); return getOpenApiFileType(project, virtualFile); }
public static CompletionResultSet forValue( final @NotNull CompletionParameters parameters, final @NotNull CompletionResultSet result) { final boolean caseSensitive = false; return getPrefix(parameters.getOffset() - 1, parameters.getOriginalFile().getText()) .map(prefix -> result.withPrefixMatcher(new CamelHumpMatcher(prefix, caseSensitive))) .orElse(result); }
@Override public void getLookupElements(@NotNull GotoCompletionProviderLookupArguments arguments) { arguments.addAllElements(TwigUtil.getBlockLookupElements( getProject(), TwigFileUtil.collectParentFiles(true, arguments.getParameters().getOriginalFile()) )); } }
@Override protected void addCompletions(@NotNull CompletionParameters completionParameters, final ProcessingContext processingContext, @NotNull final CompletionResultSet completionResultSet) { PsiFile originalFile = completionParameters.getOriginalFile(); if(!Symfony2ProjectComponent.isEnabled(originalFile)) { return; } final PsiDirectory containingDirectory = originalFile.getContainingDirectory(); if (containingDirectory == null) { return; } final VirtualFile containingDirectoryFiles = containingDirectory.getVirtualFile(); VfsUtil.visitChildrenRecursively(containingDirectoryFiles, new VirtualFileVisitor() { @Override public boolean visitFile(@NotNull VirtualFile file) { String relativePath = VfsUtil.getRelativePath(file, containingDirectoryFiles, '/'); if (relativePath == null) { return super.visitFile(file); } completionResultSet.addElement(LookupElementBuilder.create(relativePath).withIcon(file.getFileType().getIcon())); return super.visitFile(file); } }); } }
public void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet resultSet) { if(!Symfony2ProjectComponent.isEnabled(parameters.getPosition())) { return; } PhpIndex phpIndex = PhpIndex.getInstance(parameters.getOriginalFile().getProject()); Map<String, String> entityNamespaces = ServiceXmlParserFactory.getInstance(parameters.getOriginalFile().getProject(), EntityNamesServiceParser.class).getEntityNameMap(); // copied from PhpCompletionUtil::addClassesInNamespace looks the official way to find classes in namespaces // its a really performance nightmare Collection<String> names = phpIndex.getAllClassNames(new CamelHumpMatcher(resultSet.getPrefixMatcher().getPrefix())); for (String name : names) { Collection<PhpClass> classes = phpIndex.getClassesByName(name); for(Map.Entry<String, String> entry: entityNamespaces.entrySet()) { String namespaceFqn = PhpLangUtil.toFQN(entry.getValue()); Collection<PhpClass> filtered = PhpCompletionUtil.filterByNamespace(classes, namespaceFqn); for (PhpClass phpClass : filtered) { resultSet.addElement(new PhpClassLookupElement(phpClass, true, PhpClassReferenceInsertHandler.getInstance())); } } } } }
@Nullable private String findBaseDir(CompletionParameters parameters, String usedPrefix) { if (homePrefixes.contains(usedPrefix)) { return BashFiles.userHomeDir(); } PsiDirectory file = parameters.getOriginalFile().getParent(); return file != null ? file.getVirtualFile().getPath() : null; }
@Override protected void addCompletions( @NotNull final CompletionParameters parameters, final ProcessingContext context, @NotNull final CompletionResultSet result ) { final HybrisProjectSettings hybrisProjectSettings = HybrisProjectSettingsComponent.getInstance(parameters.getOriginalFile().getProject()) .getState(); final Set<String> extensions = hybrisProjectSettings.getCompleteSetOfAvailableExtensionsInHybris(); extensions.forEach(name -> result.addElement(LookupElementBuilder.create(name))); } }
@Override protected void addCompletions( @NotNull final CompletionParameters parameters, final ProcessingContext context, @NotNull final CompletionResultSet result ) { final PsiFile originalFile = parameters.getOriginalFile(); final Collection<ImpexMacroDeclaration> macroDeclarations = PsiTreeUtil.findChildrenOfType( originalFile, ImpexMacroDeclaration.class ); if (macroDeclarations.isEmpty()) { return; } for (final ImpexMacroDeclaration macroDeclaration : macroDeclarations) { final PsiElement declaration = macroDeclaration.getFirstChild(); result.addElement(LookupElementBuilder.create(declaration.getText()) .withIcon(HybrisIcons.MACROS)); } } }
public void addCompletions(@NotNull final CompletionParameters parameters, final ProcessingContext context, @NotNull final CompletionResultSet result) { final int position = parameters.getEditor().getCaretModel().getOffset(); // PsiElement position = parameters.getPosition(); final PsiFile file = parameters.getOriginalFile(); List<Completion> completions = null; try { completions = dcdCompletionClient.autoComplete(position, file); for (final Completion completion : completions) { result.addElement(createLookupElement(completion.completionText(),"",completion.completionType())); } } catch (final DCDCompletionServer.DCDError dcdError) { dcdError.printStackTrace(); } } }
@Override protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet result) { final Symbol callingSymbol = (Symbol) parameters.getPosition().getParent(); if (!parameters.isExtendedCompletion()) { String prefix = findCurrentText(parameters, parameters.getPosition()); if (prefix.isEmpty() || Character.isDigit(prefix.charAt(0))) { return; } final PsiFile containingFile = parameters.getOriginalFile(); List<Symbol> variants = Lists.newArrayList(); final LocalDefinitionCompletionProvider processor = new LocalDefinitionCompletionProvider(callingSymbol); PsiTreeUtil.treeWalkUp(processor, callingSymbol, containingFile, ResolveState.initial()); variants.addAll(processor.getSymbols()); for (Symbol currentSymbol : variants) { if (LocalizationConstruct.isLocalScoping(currentSymbol.getLocalizationConstruct())) { final String tailText = currentSymbol.getLocalizationConstruct().toString(); result.addElement(PrioritizedLookupElement.withPriority( LookupElementBuilder.create(currentSymbol.getSymbolName()) .withItemTextForeground(JBColor.GREEN) .withTypeText(tailText, true), LOCAL_VARIABLE_PRIORITY)); } } } }
@Override protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull final CompletionResultSet result) { BnfFile file = (BnfFile)parameters.getOriginalFile(); PsiElement positionRefOrToken = PsiTreeUtil.getParentOfType(parameters.getOriginalPosition(), BnfReferenceOrToken.class); Set<String> explicitTokens = RuleGraphHelper.getTokenNameToTextMap(file).keySet(); for (String s : explicitTokens) { result.addElement(LookupElementBuilder.create(s)); } for (BnfRule rule : file.getRules()) { for (BnfReferenceOrToken element : SyntaxTraverser.psiTraverser(rule.getExpression()).filter(BnfReferenceOrToken.class)) { if (element == positionRefOrToken) continue; if (element.resolveRule() == null) { result.addElement(LookupElementBuilder.create(element.getText())); } } } } });
@Override protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet result) { final PsiFile containingFile = parameters.getOriginalFile(); String prefix = findCurrentText(parameters, parameters.getPosition()); if (!parameters.isExtendedCompletion() && !prefix.isEmpty() && containingFile instanceof MathematicaPsiFile) { final CamelHumpMatcher matcher = new CamelHumpMatcher(prefix, true); CompletionResultSet result2 = result.withPrefixMatcher(matcher); final HashSet<SymbolResolveResult> cachedDefinitions = ((MathematicaPsiFile) containingFile).getCachedDefinitions(); for (SymbolResolveResult cachedDefinition : cachedDefinitions) { if (cachedDefinition.isValidResult() && cachedDefinition.getElement() != null) { result2.addElement( PrioritizedLookupElement .withPriority( LookupElementBuilder .create(cachedDefinition.getElement()) .bold() .withTypeText("(" + containingFile.getName() + ")", true), GLOBAL_VARIABLE_PRIORITY)); } } } }
@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)); } } } }