PT ##137877823: handle custom sts-progress message in a simple way

This commit is contained in:
Martin Lippert
2017-01-27 16:40:01 +01:00
parent c8e5c6e3c5
commit 1d83b61c1d
4 changed files with 33 additions and 1 deletions

View File

@@ -13,4 +13,6 @@ Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0",
org.eclipse.tm4e.core;bundle-version="1.0.0",
org.eclipse.tm4e.ui;bundle-version="1.0.0"
Import-Package: org.eclipse.jface.preference,
org.eclipse.lsp4j.jsonrpc.messages;version="0.1.0.v20170117-0759",
org.eclipse.lsp4j.services;version="0.1.0.v20170117-0759",
org.osgi.framework

View File

@@ -24,6 +24,8 @@ import org.eclipse.jdt.internal.launching.StandardVMType;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.JavaRuntime;
import org.eclipse.lsp4e.server.ProcessStreamConnectionProvider;
import org.eclipse.lsp4j.jsonrpc.messages.Message;
import org.eclipse.lsp4j.services.LanguageServer;
import org.osgi.framework.Bundle;
/**
@@ -44,6 +46,10 @@ public class CloudFoundryManifestLanguageServer extends ProcessStreamConnectionP
setWorkingDirectory(workingDir);
}
public void handleMessage(Message message, LanguageServer languageServer, String rootPath) {
System.out.println("custom message arrived: " + message.toString());
}
protected String getJDKLocation() {
IVMInstall jdk = JavaRuntime.getDefaultVMInstall();
File javaExecutable = StandardVMType.findJavaExecutable(jdk.getInstallLocation());

View File

@@ -12,5 +12,8 @@ Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0",
org.eclipse.jdt.ui;bundle-version="3.13.0",
org.eclipse.tm4e.core;bundle-version="1.0.0",
org.eclipse.tm4e.ui;bundle-version="1.0.0"
Import-Package: org.eclipse.jface.preference,
Import-Package: com.google.gson;version="2.7.0",
org.eclipse.jface.preference,
org.eclipse.lsp4j.jsonrpc.messages;version="0.1.0.v20170117-0759",
org.eclipse.lsp4j.services;version="0.1.0.v20170117-0759",
org.osgi.framework

View File

@@ -24,8 +24,13 @@ import org.eclipse.jdt.internal.launching.StandardVMType;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.JavaRuntime;
import org.eclipse.lsp4e.server.ProcessStreamConnectionProvider;
import org.eclipse.lsp4j.jsonrpc.messages.Message;
import org.eclipse.lsp4j.jsonrpc.messages.NotificationMessage;
import org.eclipse.lsp4j.services.LanguageServer;
import org.osgi.framework.Bundle;
import com.google.gson.JsonObject;
/**
* @author Martin Lippert
*/
@@ -44,6 +49,22 @@ public class SpringBootPropertiesLanguageServer extends ProcessStreamConnectionP
setWorkingDirectory(workingDir);
}
public void handleMessage(Message message, LanguageServer languageServer, String rootPath) {
if (message instanceof NotificationMessage) {
NotificationMessage notificationMessage = (NotificationMessage) message;
if ("sts/progress".equals(notificationMessage.getMethod())) {
JsonObject params = (JsonObject) notificationMessage.getParams();
if (params.has("statusMsg")) {
String status = params.get("statusMsg").getAsString();
System.out.println("STS4 Language Server Status Update: " + status);
}
else {
System.out.println("STS4 Language Server Status Update: DONE");
}
}
}
}
protected String getJDKLocation() {
IVMInstall jdk = JavaRuntime.getDefaultVMInstall();
File javaExecutable = StandardVMType.findJavaExecutable(jdk.getInstallLocation());