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:
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user