private void fillFunctionSignature(List<CompletionItem> completionItems, boolean snippetCapability) { CompletionItem functionSignatureItem = new CompletionItem(); Snippet.DEF_FUNCTION_SIGNATURE.get().build(functionSignatureItem, snippetCapability); completionItems.add(functionSignatureItem); CompletionItem functionItem = new CompletionItem(); Snippet.DEF_FUNCTION.get().build(functionItem, snippetCapability); completionItems.add(functionItem); }
private void fillInitializerSignature(List<CompletionItem> completionItems, boolean snippetCapability) { CompletionItem constructorItem = new CompletionItem(); Snippet.DEF_NEW_OBJECT_INITIALIZER.get().build(constructorItem, snippetCapability); completionItems.add(constructorItem); }
private CompletionItem getResourceSnippet(boolean snippetCapability) { return Snippet.DEF_RESOURCE.get().build(new CompletionItem(), snippetCapability); } }
private CompletionItem getStaticItem(Snippet snippet, boolean isSnippet) { return snippet.get().build(new CompletionItem(), isSnippet); }
public static CompletionList createCompletionListFromSymbols(Set<SymbolInformation> symbols) { if (symbols == null) { return new CompletionList(); } return new CompletionList( false, symbols.stream() .map(symbol -> { CompletionItem item = new CompletionItem(symbol.getName()); item.setKind(symbolKindToCompletionItemKind(symbol.getKind())); return item; }) .collect(Collectors.toList())); }
private CompletionItem getWorkerSnippet(boolean isSnippet) { return Snippet.DEF_WORKER.get().build(new CompletionItem(), isSnippet); }
@Override public List<CompletionItem> resolveItems(LSServiceOperationContext context) { boolean isSnippet = context.get(CompletionKeys.CLIENT_CAPABILITIES_KEY).getCompletionItem().getSnippetSupport(); CompletionItem resource = Snippet.DEF_RESOURCE.get().build(new CompletionItem(), isSnippet); return new ArrayList<>(Collections.singletonList(resource)); } }
public CompletionItem toCompletionItem(CompletionProposal proposal, int index) { final CompletionItem $ = new CompletionItem(); $.setKind(mapKind(proposal.getKind())); Map<String, String> data = new HashMap<>(); // append data field so that resolve request can use it. data.put(CompletionResolveHandler.DATA_FIELD_URI, JDTUtils.toURI(unit)); data.put(CompletionResolveHandler.DATA_FIELD_REQUEST_ID,String.valueOf(response.getId())); data.put(CompletionResolveHandler.DATA_FIELD_PROPOSAL_ID,String.valueOf(index)); $.setData(data); this.descriptionProvider.updateDescription(proposal, $); $.setSortText(SortTextHelper.computeSortText(proposal)); return $; }
/** * Creates and returns a completion item. * * @param bSymbol BSymbol * @param label label * @param type variable type * @return {@link CompletionItem} */ public static CompletionItem build(BVarSymbol bSymbol, String label, String type) { CompletionItem item = new CompletionItem(); item.setLabel(label); String[] delimiterSeparatedTokens = (label).split("\\."); item.setInsertText(delimiterSeparatedTokens[delimiterSeparatedTokens.length - 1]); item.setDetail((type.equals("")) ? ItemResolverConstants.NONE : type); setMeta(item, bSymbol); return item; }
/** * Creates and returns a completion item. * * @param bSymbol BSymbol * @return {@link CompletionItem} */ public static CompletionItem build(BInvokableSymbol bSymbol) { CompletionItem item = new CompletionItem(); setMeta(item, bSymbol); if (bSymbol != null) { // Override function signature Pair<String, String> functionSignature = getFunctionSignature(bSymbol); item.setInsertText(functionSignature.getLeft()); item.setLabel(functionSignature.getRight()); } return item; }
private void populateTrueFalseKeywords(List<CompletionItem> completionItems) { CompletionItem trueItem = new CompletionItem(); trueItem.setLabel(ItemResolverConstants.TRUE_KEYWORD); trueItem.setInsertText(ItemResolverConstants.TRUE_KEYWORD); trueItem.setDetail(ItemResolverConstants.KEYWORD_TYPE); trueItem.setKind(CompletionItemKind.Value); completionItems.add(trueItem); CompletionItem falseItem = new CompletionItem(); falseItem.setLabel(ItemResolverConstants.FALSE_KEYWORD); falseItem.setInsertText(ItemResolverConstants.FALSE_KEYWORD); falseItem.setDetail(ItemResolverConstants.KEYWORD_TYPE); trueItem.setKind(CompletionItemKind.Value); completionItems.add(falseItem); } }
/** * Creates and returns a completion item. * * @param bSymbol BSymbol or null * @param label label * @param insertText insert text * @return {@link CompletionItem} */ public static CompletionItem build(BInvokableSymbol bSymbol, String label, String insertText) { CompletionItem item = new CompletionItem(); item.setLabel(label); item.setInsertText(insertText); setMeta(item, bSymbol); return item; }
/** * Creates and returns a completion item. * * @param bSymbol BSymbol or null * @param label label * @return {@link CompletionItem} */ public static CompletionItem build(BTypeSymbol bSymbol, String label) { CompletionItem item = new CompletionItem(); item.setLabel(label); String[] delimiterSeparatedTokens = (label).split("\\."); item.setInsertText(delimiterSeparatedTokens[delimiterSeparatedTokens.length - 1]); item.setDetail(ItemResolverConstants.B_TYPE); setMeta(item, bSymbol); return item; }
private static CompletionItem getImportCompletion(String label, String insertText) { CompletionItem item = new CompletionItem(); item.setLabel(label); item.setInsertText(insertText); item.setKind(CompletionItemKind.Module); item.setDetail(ItemResolverConstants.PACKAGE_TYPE); return item; } }
@Override public List<CompletionItem> resolveItems(LSServiceOperationContext context) { ParserRuleContext parserRuleContext = context.get(CompletionKeys.PARSER_RULE_CONTEXT_KEY); boolean isSnippet = context.get(CompletionKeys.CLIENT_CAPABILITIES_KEY).getCompletionItem().getSnippetSupport(); if (parserRuleContext == null) { List<CompletionItem> completionItems = new ArrayList<>(); CompletionItem workerItem = Snippet.DEF_WORKER.get().build(new CompletionItem(), isSnippet); completionItems.add(workerItem); return completionItems; } AbstractItemResolver contextResolver = CompletionItemResolver.get(parserRuleContext.getClass()); if (contextResolver == null) { return new ArrayList<>(); } return contextResolver.resolveItems(context); } }
private void populateWhenCursorBeforeOrAfterEp(List<CompletionItem> completionItems, boolean snippetCapability) { CompletionItem xmlnsSnippet = Snippet.STMT_NAMESPACE_DECLARATION.get(). build(new CompletionItem(), snippetCapability); CompletionItem resSnippet = this.getResourceSnippet(snippetCapability); this.setPriorities(completionItems); xmlnsSnippet.setSortText(Priority.PRIORITY150.toString()); resSnippet.setSortText(Priority.PRIORITY160.toString()); completionItems.add(xmlnsSnippet); completionItems.add(resSnippet); }
/** * Populate a completion item with the given data and return it. * * @param insertText insert text * @param type type of the completion item * @param label completion item label * @return {@link CompletionItem} Populated Completion Item */ private CompletionItem populateCompletionItem(String insertText, String type, String label) { CompletionItem completionItem = new CompletionItem(); completionItem.setInsertText(insertText); completionItem.setDetail(type); completionItem.setLabel(label); completionItem.setKind(CompletionItemKind.Keyword); return completionItem; } }
private CompletionItem getMatchFieldSnippetCompletion(String snippet, String label) { CompletionItem completionItem = new CompletionItem(); completionItem.setInsertText(snippet); completionItem.setLabel(label); completionItem.setInsertTextFormat(InsertTextFormat.Snippet); completionItem.setDetail(ItemResolverConstants.SNIPPET_TYPE); completionItem.setKind(CompletionItemKind.Snippet); return completionItem; } }
private void fillFunctionSnippet(BLangFunctionTypeNode functionTypeNode, LSContext context, List<CompletionItem> completionItems) throws LSCompletionException { List<BLangVariable> params = functionTypeNode.getParams(); BLangType returnBLangType = functionTypeNode.getReturnTypeNode(); boolean snippetSupport = context.get(CompletionKeys.CLIENT_CAPABILITIES_KEY) .getCompletionItem() .getSnippetSupport(); String functionSignature = this.getFunctionSignature(params, returnBLangType); String body = this.getAnonFunctionSnippetBody(returnBLangType, params.size()); String snippet = functionSignature + body; String label = this.convertToLabel(functionSignature); SnippetBlock snippetBlock = new SnippetBlock(label, snippet, ItemResolverConstants.SNIPPET_TYPE, SnippetBlock.SnippetType.SNIPPET); // Populate the anonymous function signature completion item completionItems.add(snippetBlock.build(new CompletionItem(), snippetSupport)); }
@Test public void testEquals() { Assert.assertEquals(new TextDocumentIdentifier("foo"), new TextDocumentIdentifier("foo")); Assert.assertNotEquals(new TextDocumentIdentifier("foo"), new TextDocumentIdentifier("bar")); CompletionItem e1 = new CompletionItem(); e1.setAdditionalTextEdits(new ArrayList<>()); e1.getAdditionalTextEdits().add(new TextEdit(new Range(new Position(1,1), new Position(1,1)), "foo")); CompletionItem e2 = new CompletionItem(); e2.setAdditionalTextEdits(new ArrayList<>()); e2.getAdditionalTextEdits().add(new TextEdit(new Range(new Position(1,1), new Position(1,1)), "foo")); CompletionItem e3 = new CompletionItem(); e3.setAdditionalTextEdits(new ArrayList<>()); e3.getAdditionalTextEdits().add(new TextEdit(new Range(new Position(1,1), new Position(1,2)), "foo")); Assert.assertEquals(e1, e2); Assert.assertNotEquals(e1, e3); Assert.assertEquals(e1.hashCode(), e2.hashCode()); Assert.assertNotEquals(e1.hashCode(), e3.hashCode()); }