88import org .eclipse .lsp4j .ProgressParams ;
99import org .eclipse .lsp4j .WorkDoneProgressNotification ;
1010import org .eclipse .lsp4j .WorkDoneProgressReport ;
11+ import org .eclipse .lsp4j .jsonrpc .messages .Either ;
12+
13+ import com .google .gson .JsonObject ;
1114
1215public class AngularClientImpl extends LanguageClientImpl implements AngularLanguageServerExtention {
1316
@@ -31,7 +34,6 @@ public void projectLanguageService(Map<String,Object> data) {
3134 @ Override
3235 public void suggestIvyLanguageServiceMode (Object o ) {
3336 logMessage (new MessageParams (MessageType .Info , o .toString ()));
34- // TODO should this propose a setting (in the preferences) that enables --experimental-ivy command in the AngularLanguageServer)
3537 }
3638
3739 @ Override
@@ -44,10 +46,20 @@ public void suggestStrictMode(Object o) {
4446 @ Override
4547 public void notifyProgress (ProgressParams params ) {
4648 String message = null ;
47- WorkDoneProgressNotification value = params .getValue ();
48- if (value instanceof WorkDoneProgressReport ) {
49- message = ((WorkDoneProgressReport ) value ).getMessage ();
49+ Either <WorkDoneProgressNotification , Object > either = params .getValue ();
50+ if (either .isLeft ()) {
51+ if (either .getLeft () instanceof WorkDoneProgressReport )
52+ message = ((WorkDoneProgressReport ) either .getLeft ()).getMessage ();
53+ }
54+ else if (either .getRight () instanceof JsonObject )
55+ {
56+ JsonObject json = (JsonObject ) either .getRight ();
57+ if (json .has ("message" )) {
58+ message = json .get ("message" ).getAsString ();
59+ }
60+ }
61+ if (message != null ) {
62+ logMessage (new MessageParams (MessageType .Info , params .getToken ().getLeft () + ": " + (message == null ? "done" :message )));
5063 }
51- logMessage (new MessageParams (MessageType .Info , params .getToken ().getLeft () + ": " + (message == null ? "done" :message )));
5264 }
5365}
0 commit comments