Partially working classpath change mechanics

Prints messages in language server logs, but doesn't really do anything else with the change events yet.
This commit is contained in:
Kris De Volder
2018-03-15 15:24:19 -07:00
parent 93f58f77b9
commit f442c28bff
11 changed files with 47 additions and 21 deletions

View File

@@ -16,7 +16,6 @@ import org.springframework.ide.vscode.commons.languageserver.composable.Composab
import org.springframework.ide.vscode.commons.languageserver.composable.CompositeLanguageServerComponents;
import org.springframework.ide.vscode.commons.languageserver.composable.LanguageServerComponents;
import org.springframework.ide.vscode.commons.languageserver.util.LSFactory;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
public class BootLanguageServer<C extends LanguageServerComponents> extends ComposableLanguageServer<C> {
@@ -24,11 +23,12 @@ public class BootLanguageServer<C extends LanguageServerComponents> extends Comp
super(extensionId, _components);
}
public static ComposableLanguageServer<CompositeLanguageServerComponents> create(LSFactory<BootLanguageServerParams> params) {
public static ComposableLanguageServer<CompositeLanguageServerComponents> create(LSFactory<BootLanguageServerParams> _params) {
return new ComposableLanguageServer<>("vscode-boot", s -> {
BootLanguageServerParams params = _params.create(s);
CompositeLanguageServerComponents.Builder components = new CompositeLanguageServerComponents.Builder();
components.add(new BootPropertiesLanguageServerComponents(s, params));
components.add(new BootJavaLanguageServerComponents(s, params));
components.add(new BootPropertiesLanguageServerComponents(s, (ignore) -> params));
components.add(new BootJavaLanguageServerComponents(s, (ignore) -> params));
return components.build(s);
});
}

View File

@@ -72,6 +72,8 @@ import org.springframework.ide.vscode.commons.util.UriUtil;
import org.springframework.ide.vscode.commons.util.text.LanguageId;
import org.springframework.ide.vscode.commons.util.text.TextDocument;
import com.google.common.collect.ImmutableList;
/**
* @author Martin Lippert
*/
@@ -146,7 +148,7 @@ public class SpringIndexer {
}
}
}, "Spring Annotation Index Update Worker");
updateWorker.start();
server.onInitialized(updateWorker::start);
getWorkspaceService().onDidChangeWorkspaceFolders(evt -> {
log.debug("workspace roots have changed event arrived - added: " + evt.getEvent().getAdded() + " - removed: " + evt.getEvent().getRemoved());
@@ -329,7 +331,8 @@ public class SpringIndexer {
public List<? extends SymbolAddOnInformation> getAdditonalInformation(String docURI) {
waitForInitializeTask();
return this.addonInformationByDoc.get(docURI);
List<SymbolAddOnInformation> info = this.addonInformationByDoc.get(docURI);
return info == null ? ImmutableList.of() : info;
}
private List<SymbolInformation> searchMatchingSymbols(List<SymbolInformation> allsymbols, String query) {

View File

@@ -52,13 +52,14 @@ public class JdtLsProjectCache implements JavaProjectFinder, ProjectObserver {
public JdtLsProjectCache(SimpleLanguageServer server) {
this.server = server;
CompletableFuture<Disposable> disposable = new CompletableFuture<Disposable>();
this.server.onInitialized(() -> disposable.complete(server.addClasspathListener(new ClasspathListener() {
@Override
public void changed(String projectUri, boolean deleted) {
log.info("Classpath changed: "+projectUri);
}
})));
this.server.onInitialized(() ->
disposable.complete(server.addClasspathListener(new ClasspathListener() {
@Override
public void changed(String projectUri, boolean deleted) {
log.info("Classpath changed: "+projectUri);
}
}))
);
this.server.onShutdown(() -> disposable.thenAccept(Disposable::dispose));
}