Some useless LSFactories removed.
Some unused obsolete methods removed.
This commit is contained in:
Kris De Volder
2018-10-16 14:29:42 -07:00
parent fa72c26252
commit 2fd8d05fd0
4 changed files with 30 additions and 71 deletions

View File

@@ -26,16 +26,16 @@ import org.springframework.ide.vscode.commons.util.text.TextDocument;
*
* @author Kris De Volder
*/
public class ComposableLanguageServer<C extends LanguageServerComponents> implements SimpleLanguageServerWrapper {
public class ComposableLanguageServer<C extends LanguageServerComponents> {
private final SimpleLanguageServer server;
private C components;
private VscodeCompletionEngineAdapter completionEngineAdapter;
private HoverHandler hoverHandler;
public ComposableLanguageServer(SimpleLanguageServer server, LSFactory<C> _components) {
public ComposableLanguageServer(SimpleLanguageServer server, C _components) {
this.server = server;
this.components = _components.create(server);
this.components = _components;
SimpleTextDocumentService documents = server.getTextDocumentService();
@@ -58,25 +58,9 @@ public class ComposableLanguageServer<C extends LanguageServerComponents> implem
documents.onHover(hoverHandler);
}
public C getComponents() {
return components;
}
public void setMaxCompletionsNumber(int number) {
if (completionEngineAdapter!=null) {
completionEngineAdapter.setMaxCompletions(number);
}
}
public void setHoverType(HoverType type) {
if (hoverHandler instanceof VscodeCompletionEngineAdapter) {
((VscodeHoverEngineAdapter) hoverHandler).setHoverType(type);
}
}
@Override
public SimpleLanguageServer getServer() {
return this.server;
}
}

View File

@@ -32,6 +32,6 @@ public class BootLanguagServerBootApp {
@ConditionalOnMissingClass("org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness")
@Bean BootLanguageServerParams serverParams(SimpleLanguageServer server) {
return BootLanguageServerParams.createDefault().create(server);
return BootLanguageServerParams.createDefault(server);
}
}

View File

@@ -34,7 +34,7 @@ public class BootLanguageServerInitializer implements InitializingBean {
private CompositeLanguageServerComponents components;
private ComposableLanguageServer composableLs;
private ComposableLanguageServer<CompositeLanguageServerComponents> composableLs;
private static final Logger log = LoggerFactory.getLogger(BootLanguageServerInitializer.class);
@@ -49,38 +49,16 @@ public class BootLanguageServerInitializer implements InitializingBean {
});
}
public static ComposableLanguageServer<CompositeLanguageServerComponents> create(SimpleLanguageServer server, LSFactory<BootLanguageServerParams> _params) {
return new ComposableLanguageServer<>(server, s -> {
BootLanguageServerParams params = _params.create(s);
CompositeLanguageServerComponents.Builder builder = new CompositeLanguageServerComponents.Builder();
builder.add(new BootPropertiesLanguageServerComponents(s, (ignore) -> params));
builder.add(new BootJavaLanguageServerComponents(s, (ignore) -> params));
CompositeLanguageServerComponents components = builder.build(s);
params.projectObserver.addListener(reconcileOpenDocuments(s, components));
return components;
});
}
public static ComposableLanguageServer<BootPropertiesLanguageServerComponents> createProperties(SimpleLanguageServer server, LSFactory<BootLanguageServerParams> params) {
return new ComposableLanguageServer<>(server, s -> new BootPropertiesLanguageServerComponents(s, params));
}
public static ComposableLanguageServer<BootJavaLanguageServerComponents> createJava(SimpleLanguageServer server, LSFactory<BootLanguageServerParams> params) {
return new ComposableLanguageServer<>(server, s -> new BootJavaLanguageServerComponents(s, params));
}
@Override
public void afterPropertiesSet() throws Exception {
//TODO: ComposableLanguageServer object instance serves no purpose anymore. The constructor really just contains
// some server intialization code. Migrate that code and get rid of the ComposableLanguageServer class
this.composableLs = new ComposableLanguageServer<>(server, s -> {
CompositeLanguageServerComponents.Builder builder = new CompositeLanguageServerComponents.Builder();
builder.add(new BootPropertiesLanguageServerComponents(s, (ignore) -> params));
builder.add(new BootJavaLanguageServerComponents(s, (ignore) -> params));
components = builder.build(s);
params.projectObserver.addListener(reconcileOpenDocuments(s, components));
return components;
});
CompositeLanguageServerComponents.Builder builder = new CompositeLanguageServerComponents.Builder();
builder.add(new BootPropertiesLanguageServerComponents(server, (ignore) -> params));
builder.add(new BootJavaLanguageServerComponents(server, (ignore) -> params));
components = builder.build(server);
params.projectObserver.addListener(reconcileOpenDocuments(server, components));
this.composableLs = new ComposableLanguageServer<>(server, components);
}
public CompositeLanguageServerComponents getComponents() {

View File

@@ -89,29 +89,26 @@ public class BootLanguageServerParams {
this.watchDogInterval = watchDogInterval;
}
public static LSFactory<BootLanguageServerParams> createDefault() {
//TODO: Get rid of LSFactory
return (SimpleLanguageServer server) -> {
// Initialize project finders, project caches and project observers
JavaProjectsService jdtProjectCache = new JavaProjectsServiceWithFallback(
server,
new JdtLsProjectCache(server),
() -> createFallbackProjectCache(server)
);
DefaultSpringPropertyIndexProvider indexProvider = new DefaultSpringPropertyIndexProvider(jdtProjectCache, jdtProjectCache);
SpringPropertyIndexProvider adHocProvider = new AdHocSpringPropertyIndexProvider(jdtProjectCache, jdtProjectCache, server.getWorkspaceService().getFileObserver());
indexProvider.setProgressService(server.getProgressService());
public static BootLanguageServerParams createDefault(SimpleLanguageServer server) {
// Initialize project finders, project caches and project observers
JavaProjectsService jdtProjectCache = new JavaProjectsServiceWithFallback(
server,
new JdtLsProjectCache(server),
() -> createFallbackProjectCache(server)
);
DefaultSpringPropertyIndexProvider indexProvider = new DefaultSpringPropertyIndexProvider(jdtProjectCache, jdtProjectCache);
SpringPropertyIndexProvider adHocProvider = new AdHocSpringPropertyIndexProvider(jdtProjectCache, jdtProjectCache, server.getWorkspaceService().getFileObserver());
indexProvider.setProgressService(server.getProgressService());
return new BootLanguageServerParams(
jdtProjectCache.filter(BootProjectUtil::isBootProject),
jdtProjectCache,
indexProvider,
adHocProvider,
(IDocument doc) -> new TypeUtil(jdtProjectCache.find(new TextDocumentIdentifier(doc.getUri()))),
RunningAppProvider.createDefault(server),
SpringLiveHoverWatchdog.DEFAULT_INTERVAL
);
};
return new BootLanguageServerParams(
jdtProjectCache.filter(BootProjectUtil::isBootProject),
jdtProjectCache,
indexProvider,
adHocProvider,
(IDocument doc) -> new TypeUtil(jdtProjectCache.find(new TextDocumentIdentifier(doc.getUri()))),
RunningAppProvider.createDefault(server),
SpringLiveHoverWatchdog.DEFAULT_INTERVAL
);
}
private static JavaProjectsService createFallbackProjectCache(SimpleLanguageServer server) {