private void resolveEdits(TextDocument doc, ICompletionProposal completion, CompletionItem item) { Optional<TextEdit> mainEdit = adaptEdits(doc, completion.getTextEdit()); if (mainEdit.isPresent()) { item.setTextEdit(mainEdit.get()); item.setInsertTextFormat(completion.getInsertTextFormat()); } else { item.setInsertText(""); } completion.getAdditionalEdit().ifPresent(edit -> { adaptEdits(doc, edit).ifPresent(extraEdit -> { item.setAdditionalTextEdits(ImmutableList.of(extraEdit)); }); }); }
/** * Fill the completion items extracted from LS Index db with the auto import text edits. * Here the Completion Items are mapped against the respective package ID. * @param completionsMap Completion Map to evaluate * @param ctx Lang Server Operation Context * @return {@link List} List of modified completion items */ public static List<CompletionItem> fillCompletionWithPkgImport(HashMap<Integer, ArrayList<CompletionItem>> completionsMap, LSContext ctx) { LSIndexImpl lsIndex = ctx.get(LSGlobalContextKeys.LS_INDEX_KEY); List<CompletionItem> returnList = new ArrayList<>(); completionsMap.forEach((integer, completionItems) -> { try { BPackageSymbolDTO dto = ((BPackageSymbolDAO) lsIndex.getDaoFactory().get(DAOType.PACKAGE_SYMBOL)) .get(integer); completionItems.forEach(completionItem -> { List<TextEdit> textEdits = CommonUtil.getAutoImportTextEdits(ctx, dto.getOrgName(), dto.getName()); completionItem.setAdditionalTextEdits(textEdits); returnList.add(completionItem); }); } catch (LSIndexException e) { logger.error("Error While retrieving Package Symbol for text edits"); } }); return returnList; }
item.setDetail(ItemResolverConstants.PACKAGE_TYPE); item.setKind(CompletionItemKind.Module); item.setAdditionalTextEdits(CommonUtil.getAutoImportTextEdits(ctx, orgName, name)); completionItems.add(item);
annotationItem.setAdditionalTextEdits(getAutoImportTextEdits(ctx, packageID.orgName.getValue(), packageID.name.getValue()));
int _size = entry.getTextReplacements().size(); ArrayList<TextEdit> _arrayList = new ArrayList<TextEdit>(_size); completionItem.setAdditionalTextEdits(_arrayList);
item.setAdditionalTextEdits(additionalTextEdits);
@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()); }