From 40abf6b566ea2e32dbbb06a256f12c6bb7cc7c29 Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Fri, 24 Nov 2017 15:14:41 -0800 Subject: [PATCH] Edits aren't supposed to ever be lazy resolve in LSP. So don't make them lazy. --- .../completion/VscodeCompletionEngineAdapter.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java index 2e21f8b8e..acca5dabf 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java @@ -168,6 +168,8 @@ public class VscodeCompletionEngineAdapter implements VscodeCompletionEngine { item.setSortText(sortkeys.next()); item.setFilterText(completion.getFilterText()); item.setDetail(completion.getDetail()); + resolveEdits(doc, completion, item); //Warning. Its not allowed by LSP spec to resolveEdits + //lazy as we used to do in the past. if (resolver!=null) { item.setData(resolver.resolveLater(completion, doc)); } else { @@ -178,6 +180,10 @@ public class VscodeCompletionEngineAdapter implements VscodeCompletionEngine { private static void resolveItem(TextDocument doc, ICompletionProposal completion, CompletionItem item) throws Exception { item.setDocumentation(toMarkdown(completion.getDocumentation())); + resolveEdits(doc, completion, item); + } + + private static void resolveEdits(TextDocument doc, ICompletionProposal completion, CompletionItem item) { Optional mainEdit = adaptEdits(doc, completion.getTextEdit()); if (mainEdit.isPresent()) { item.setTextEdit(mainEdit.get());