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 eb4418cff..65ef89d8f 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 @@ -31,6 +31,8 @@ import org.eclipse.lsp4j.TextEdit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ide.vscode.commons.languageserver.completion.DocumentEdits.TextReplace; +import org.springframework.ide.vscode.commons.languageserver.util.LspClient; +import org.springframework.ide.vscode.commons.languageserver.util.LspClient.Client; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService; import org.springframework.ide.vscode.commons.languageserver.util.SortKeys; @@ -164,6 +166,12 @@ public class VscodeCompletionEngineAdapter implements VscodeCompletionEngine { } } list.setItems(items); + //This is a hack. It bypasses lsp4e filtering / sorting because it + // it behaves totally bonkers. See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=535823 + // See also https://www.pivotaltracker.com/story/show/159667257 + if (LspClient.currentClient()==Client.ECLIPSE) { + list.setIsIncomplete(true); + } return list; }) .doOnNext(x -> log.info("Got {} completions", x.getItems().size()))