Remove ComposableLanguageServer class
This commit is contained in:
@@ -1,66 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016, 2018 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.composable;
|
||||
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionEngine;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.hover.VscodeHoverEngineAdapter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.hover.VscodeHoverEngineAdapter.HoverType;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.HoverHandler;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.LSFactory;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServerWrapper;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService;
|
||||
import org.springframework.ide.vscode.commons.util.text.TextDocument;
|
||||
|
||||
/**
|
||||
* Facilitates composition of language servers from composable {@link LanguageServerComponents}.
|
||||
*
|
||||
* @author Kris De Volder
|
||||
*/
|
||||
public class ComposableLanguageServer<C extends LanguageServerComponents> {
|
||||
|
||||
private final SimpleLanguageServer server;
|
||||
private C components;
|
||||
private VscodeCompletionEngineAdapter completionEngineAdapter;
|
||||
private HoverHandler hoverHandler;
|
||||
|
||||
public ComposableLanguageServer(SimpleLanguageServer server, C _components) {
|
||||
this.server = server;
|
||||
this.components = _components;
|
||||
|
||||
SimpleTextDocumentService documents = server.getTextDocumentService();
|
||||
|
||||
components.getReconcileEngine().ifPresent(reconcileEngine -> {
|
||||
documents.onDidChangeContent(params -> {
|
||||
TextDocument doc = params.getDocument();
|
||||
server.validateWith(doc.getId(), reconcileEngine);
|
||||
});
|
||||
});
|
||||
|
||||
ICompletionEngine completionEngine = components.getCompletionEngine();
|
||||
if (completionEngine!=null) {
|
||||
completionEngineAdapter = server.createCompletionEngineAdapter(server, completionEngine);
|
||||
completionEngineAdapter.setMaxCompletions(100);
|
||||
documents.onCompletion(completionEngineAdapter::getCompletions);
|
||||
documents.onCompletionResolve(completionEngineAdapter::resolveCompletion);
|
||||
}
|
||||
|
||||
this.hoverHandler = components.getHoverProvider();
|
||||
documents.onHover(hoverHandler);
|
||||
}
|
||||
|
||||
public void setMaxCompletionsNumber(int number) {
|
||||
if (completionEngineAdapter!=null) {
|
||||
completionEngineAdapter.setMaxCompletions(number);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16,11 +16,13 @@ import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerComponents;
|
||||
import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServerComponents;
|
||||
import org.springframework.ide.vscode.commons.languageserver.composable.ComposableLanguageServer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionEngine;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter;
|
||||
import org.springframework.ide.vscode.commons.languageserver.composable.CompositeLanguageServerComponents;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ProjectObserver;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.LSFactory;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.HoverHandler;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService;
|
||||
import org.springframework.ide.vscode.commons.util.text.TextDocument;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.Assert;
|
||||
@@ -29,12 +31,10 @@ import org.springframework.util.Assert;
|
||||
public class BootLanguageServerInitializer implements InitializingBean {
|
||||
|
||||
@Autowired SimpleLanguageServer server;
|
||||
|
||||
@Autowired BootLanguageServerParams params;
|
||||
|
||||
private CompositeLanguageServerComponents components;
|
||||
|
||||
private ComposableLanguageServer<CompositeLanguageServerComponents> composableLs;
|
||||
private VscodeCompletionEngineAdapter completionEngineAdapter;
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(BootLanguageServerInitializer.class);
|
||||
|
||||
@@ -58,7 +58,26 @@ public class BootLanguageServerInitializer implements InitializingBean {
|
||||
builder.add(new BootJavaLanguageServerComponents(server, (ignore) -> params));
|
||||
components = builder.build(server);
|
||||
params.projectObserver.addListener(reconcileOpenDocuments(server, components));
|
||||
this.composableLs = new ComposableLanguageServer<>(server, components);
|
||||
|
||||
SimpleTextDocumentService documents = server.getTextDocumentService();
|
||||
|
||||
components.getReconcileEngine().ifPresent(reconcileEngine -> {
|
||||
documents.onDidChangeContent(params -> {
|
||||
TextDocument doc = params.getDocument();
|
||||
server.validateWith(doc.getId(), reconcileEngine);
|
||||
});
|
||||
});
|
||||
|
||||
ICompletionEngine completionEngine = components.getCompletionEngine();
|
||||
if (completionEngine!=null) {
|
||||
completionEngineAdapter = server.createCompletionEngineAdapter(server, completionEngine);
|
||||
completionEngineAdapter.setMaxCompletions(100);
|
||||
documents.onCompletion(completionEngineAdapter::getCompletions);
|
||||
documents.onCompletionResolve(completionEngineAdapter::resolveCompletion);
|
||||
}
|
||||
|
||||
HoverHandler hoverHandler = components.getHoverProvider();
|
||||
documents.onHover(hoverHandler);
|
||||
}
|
||||
|
||||
public CompositeLanguageServerComponents getComponents() {
|
||||
@@ -66,8 +85,10 @@ public class BootLanguageServerInitializer implements InitializingBean {
|
||||
return components;
|
||||
}
|
||||
|
||||
public void setMaxCompletions(int maxCompletions) {
|
||||
composableLs.setMaxCompletionsNumber(maxCompletions);
|
||||
public void setMaxCompletions(int number) {
|
||||
if (completionEngineAdapter!=null) {
|
||||
completionEngineAdapter.setMaxCompletions(number);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.boot.java.utils.test;
|
||||
|
||||
import static org.mockito.Matchers.anyObject;
|
||||
import static org.mockito.ArgumentMatchers.anyObject;
|
||||
import static org.mockito.Mockito.atLeastOnce;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
@@ -18,22 +18,18 @@ import static org.mockito.Mockito.verify;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest;
|
||||
import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf;
|
||||
import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerComponents;
|
||||
import org.springframework.ide.vscode.boot.metadata.DefaultSpringPropertyIndexProvider;
|
||||
import org.springframework.ide.vscode.commons.languageserver.ProgressService;
|
||||
import org.springframework.ide.vscode.commons.languageserver.composable.ComposableLanguageServer;
|
||||
import org.springframework.ide.vscode.commons.maven.MavenCore;
|
||||
import org.springframework.ide.vscode.commons.util.text.LanguageId;
|
||||
import org.springframework.ide.vscode.commons.util.text.TextDocument;
|
||||
import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness;
|
||||
import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness;
|
||||
import org.springframework.ide.vscode.project.harness.ProjectsHarness;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
@@ -41,7 +37,6 @@ import org.springframework.test.context.junit4.SpringRunner;
|
||||
* Tests for Spring properties index in Boot Java server
|
||||
*
|
||||
* @author Alex Boyko
|
||||
*
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@BootLanguageServerTest
|
||||
|
||||
Reference in New Issue
Block a user