Skip to content

Commit d886efd

Browse files
authored
Index Elements serialization. Structure view initial work
* WIP Signed-off-by: aboyko <[email protected]> * `SpringIndexElement` serialization. Initial Structure view in VSCode Signed-off-by: aboyko <[email protected]> * Corrections Signed-off-by: aboyko <[email protected]> * Serialization polishing Signed-off-by: aboyko <[email protected]> * Don't include java.lang.Object in supertypes serialization Signed-off-by: aboyko <[email protected]> --------- Signed-off-by: aboyko <[email protected]>
1 parent 515f27d commit d886efd

File tree

17 files changed

+884
-151
lines changed

17 files changed

+884
-151
lines changed

headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/LanguageServerRunner.java

+11-4
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.util.concurrent.ExecutorService;
2525
import java.util.concurrent.Executors;
2626
import java.util.concurrent.Future;
27+
import java.util.function.Consumer;
2728
import java.util.function.Function;
2829

2930
import org.eclipse.lsp4j.jsonrpc.Launcher;
@@ -38,6 +39,8 @@
3839
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
3940
import org.springframework.ide.vscode.commons.protocol.STS4LanguageClient;
4041

42+
import com.google.gson.GsonBuilder;
43+
4144
/**
4245
* A CommandLineRunner that launches a language server. This meant to be used as a Spring bean
4346
* in a SpringBoot app.
@@ -98,11 +101,14 @@ public void run(String... args) throws Exception {
98101

99102
private Function<MessageConsumer, MessageConsumer> messageConsumer;
100103

101-
public LanguageServerRunner(LanguageServerProperties properties, SimpleLanguageServer languageServer, Function<MessageConsumer, MessageConsumer> messageConsumer) {
104+
private Consumer<GsonBuilder> configureGson;
105+
106+
public LanguageServerRunner(LanguageServerProperties properties, SimpleLanguageServer languageServer, Function<MessageConsumer, MessageConsumer> messageConsumer, Consumer<GsonBuilder> configureGson) {
102107
super();
103108
this.properties = properties;
104109
this.languageServer = languageServer;
105110
this.messageConsumer = messageConsumer;
111+
this.configureGson = configureGson;
106112
}
107113

108114
public void start() throws Exception {
@@ -207,7 +213,7 @@ private <T> Launcher<T> createSocketLauncher(
207213
AsynchronousSocketChannel socketChannel = serverSocket.accept().get();
208214
log.info("Client connected via socket");
209215
return Launcher.createIoLauncher(localService, remoteInterface, Channels.newInputStream(socketChannel),
210-
Channels.newOutputStream(socketChannel), executorService, wrapper);
216+
Channels.newOutputStream(socketChannel), executorService, wrapper, configureGson);
211217
}
212218

213219
private static Connection connectToNode() throws IOException {
@@ -235,12 +241,13 @@ private static Connection connectToNode() throws IOException {
235241
private Future<Void> runAsync(Connection connection) throws Exception {
236242
LanguageServer server = this.languageServer;
237243
ExecutorService executor = createServerThreads();
238-
Launcher<STS4LanguageClient> launcher = Launcher.createLauncher(server,
244+
Launcher<STS4LanguageClient> launcher = Launcher.createIoLauncher(server,
239245
STS4LanguageClient.class,
240246
connection.in,
241247
connection.out,
242248
executor,
243-
messageConsumer
249+
messageConsumer,
250+
configureGson
244251
);
245252

246253
if (server instanceof LanguageClientAware) {

0 commit comments

Comments
 (0)