From 9d89229cea5820381158691a78b4686e25927b92 Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Wed, 14 Feb 2018 13:51:40 -0800 Subject: [PATCH] Make some LanguageServerComponents optional --- .../composable/ComposableLanguageServer.java | 24 ++++++++++++------- .../composable/LanguageServerComponents.java | 8 +++++-- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/ComposableLanguageServer.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/ComposableLanguageServer.java index 198aca022..e351ad54b 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/ComposableLanguageServer.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/ComposableLanguageServer.java @@ -41,16 +41,20 @@ public class ComposableLanguageServer implem SimpleTextDocumentService documents = server.getTextDocumentService(); IReconcileEngine reconcileEngine = components.getReconcileEngine(); - documents.onDidChangeContent(params -> { - TextDocument doc = params.getDocument(); - server.validateWith(doc.getId(), reconcileEngine); - }); + if (reconcileEngine!=null) { + documents.onDidChangeContent(params -> { + TextDocument doc = params.getDocument(); + server.validateWith(doc.getId(), reconcileEngine); + }); + } ICompletionEngine completionEngine = components.getCompletionEngine(); - completionEngineAdapter = server.createCompletionEngineAdapter(server, completionEngine); - completionEngineAdapter.setMaxCompletions(100); - documents.onCompletion(completionEngineAdapter::getCompletions); - documents.onCompletionResolve(completionEngineAdapter::resolveCompletion); + if (completionEngine!=null) { + completionEngineAdapter = server.createCompletionEngineAdapter(server, completionEngine); + completionEngineAdapter.setMaxCompletions(100); + documents.onCompletion(completionEngineAdapter::getCompletions); + documents.onCompletionResolve(completionEngineAdapter::resolveCompletion); + } HoverInfoProvider hoverInfoProvider = components.getHoverProvider(); hoverEngine = new VscodeHoverEngineAdapter(server, hoverInfoProvider); @@ -62,7 +66,9 @@ public class ComposableLanguageServer implem } public void setMaxCompletionsNumber(int number) { - completionEngineAdapter.setMaxCompletions(number); + if (completionEngineAdapter!=null) { + completionEngineAdapter.setMaxCompletions(number); + } } public void setHoverType(HoverType type) { diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/LanguageServerComponents.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/LanguageServerComponents.java index 1da5c1bbc..31d2214df 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/LanguageServerComponents.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/LanguageServerComponents.java @@ -16,8 +16,12 @@ import org.springframework.ide.vscode.commons.languageserver.reconcile.IReconcil public interface LanguageServerComponents { - IReconcileEngine getReconcileEngine(); - ICompletionEngine getCompletionEngine(); + default IReconcileEngine getReconcileEngine() { + return null; + } + default ICompletionEngine getCompletionEngine() { + return null; + } HoverInfoProvider getHoverProvider(); }