/** * Remove the specific type of completion items from the completion items list. * @param types Completion Item types * @param completionItems List of completion Items */ void removeCompletionsByType(List<String> types, List<CompletionItem> completionItems) { completionItems.removeIf(completionItem -> types.contains(completionItem.getDetail())); }
/** * Sort Completion Items based on a particular criteria. * * @param ctx Completion context * @param completionItems List of initial completion items */ @Override public void sortItems(LSServiceOperationContext ctx, List<CompletionItem> completionItems) { this.setPriorities(completionItems); String variableType = this.getVariableType(ctx); List<String> poppedTokens = ctx.get(CompletionKeys.FORCE_CONSUMED_TOKENS_KEY) .stream() .map(Token::getText) .collect(Collectors.toList()); if (poppedTokens.contains("=")) { completionItems.forEach(completionItem -> { if (completionItem.getDetail().equals(ItemResolverConstants.FUNCTION_TYPE)) { String label = completionItem.getLabel(); String functionReturnType = label.substring(label.lastIndexOf("(") + 1, label.lastIndexOf(")")); if (variableType.equals(functionReturnType)) { this.increasePriority(completionItem); } } }); } }
@Override void setPriorities(List<CompletionItem> completionItems) { completionItems.forEach(completionItem -> { switch (completionItem.getDetail()) { case ItemResolverConstants.NONE: case ItemResolverConstants.KEYWORD_TYPE: case ItemResolverConstants.STATEMENT_TYPE: case ItemResolverConstants.SNIPPET_TYPE: case ItemResolverConstants.FIELD_TYPE: case ItemResolverConstants.B_TYPE: case ItemResolverConstants.PACKAGE_TYPE: case ItemResolverConstants.FUNCTION_TYPE: super.setPriority(completionItem); break; default: completionItem.setSortText(Priority.PRIORITY220.toString()); break; } }); }
.type.toString(); completionItems.forEach(completionItem -> { if (completionItem.getDetail().equals(ItemResolverConstants.FUNCTION_TYPE)) { String label = completionItem.getLabel(); String[] returnTypes = label.substring(label.lastIndexOf("(") + 1, label.lastIndexOf(")")).split(","); completionItem.setSortText(String.valueOf(newPriority)); } else if (completionItem.getDetail().equals(ItemResolverConstants.KEYWORD_TYPE)) { completionItem.setSortText(Priority.shiftPriority(Priority.PRIORITY110.toString(), -1)); } else if (completionItem.getDetail().equals(constraintType)) { completionItem.setSortText(Priority.shiftPriority(completionItem.getSortText(), -1));
/** * Sort Completion Items based on a particular criteria. * * @param ctx Completion context * @param completionItems List of initial completion items */ @Override public void sortItems(LSServiceOperationContext ctx, List<CompletionItem> completionItems) { this.setPriorities(completionItems); completionItems.forEach(completionItem -> { String detail = completionItem.getDetail(); String label = completionItem.getLabel(); if (detail.equals(ItemResolverConstants.FUNCTION_TYPE)) { String signature = completionItem.getLabel(); String returnType = signature .substring(signature.lastIndexOf(OPEN_BRACKET), signature.lastIndexOf(CLOSE_BRACKET)).trim(); if (returnType.endsWith(ItemResolverConstants.BOOLEAN_TYPE)) { completionItem.setSortText(Priority.shiftPriority(completionItem.getSortText(), -1)); } } else if (detail.equals(ItemResolverConstants.BOOLEAN_TYPE)) { completionItem.setSortText(Priority.shiftPriority(completionItem.getSortText(), -1)); } else if (ItemResolverConstants.TRUE_KEYWORD.equals(label) || ItemResolverConstants.FALSE_KEYWORD.equals(label)) { completionItem.setSortText(Priority.PRIORITY110.toString()); } }); } }
public CompletionItem assertCompletionDetails(String expectLabel, String expectDetail, String expectDocSnippet) throws Exception { CompletionItem it = harness.resolveCompletionItem(assertCompletionWithLabel(expectLabel)); if (expectDetail!=null) { assertEquals(expectDetail, it.getDetail()); } if (expectDocSnippet!=null) { assertContains(expectDocSnippet, getDocString(it)); } return it; }
/** * Sort Completion Items based on a particular criteria. * * @param ctx Completion context * @param completionItems List of initial completion items */ @Override public void sortItems(LSServiceOperationContext ctx, List<CompletionItem> completionItems) { completionItems.forEach(completionItem -> { if (completionItem.getDetail().equals(ItemResolverConstants.B_TYPE)) { completionItem.setSortText(Priority.PRIORITY150.toString()); } else if (completionItem.getDetail().equals(ItemResolverConstants.FUNCTION_TYPE) && InsertTextFormat.Snippet.equals(completionItem.getInsertTextFormat())) { completionItem.setDetail(ItemResolverConstants.SNIPPET_TYPE); completionItem.setSortText(Priority.PRIORITY120.toString()); } else if (completionItem.getDetail().equals(ItemResolverConstants.FUNCTION_TYPE)) { completionItem.setSortText(Priority.PRIORITY140.toString()); } else if (InsertTextFormat.Snippet.equals(completionItem.getInsertTextFormat())) { completionItem.setDetail(ItemResolverConstants.SNIPPET_TYPE); completionItem.setSortText(Priority.PRIORITY110.toString()); } else { completionItem.setSortText(Priority.PRIORITY130.toString()); } }); } }
public CompletionItem assertCompletionDetailsWithDeprecation(String expectLabel, String expectDetail, String expectDocSnippet, Boolean deprecated) throws Exception { CompletionItem it = harness.resolveCompletionItem(assertCompletionWithLabel(expectLabel)); if (expectDetail!=null) { assertEquals(expectDetail, it.getDetail()); } if (expectDocSnippet!=null) { assertContains(expectDocSnippet, getDocString(it)); } assertEquals(deprecated, it.getDeprecated()); return it; }
void setPriority(CompletionItem completionItem) { String detail = completionItem.getDetail(); switch (detail) { case ItemResolverConstants.NONE: