From ec6e7105204cc24843b62b4598abc2503179abe8 Mon Sep 17 00:00:00 2001 From: Jacob Richman Date: Mon, 22 Apr 2019 10:41:18 -0700 Subject: [PATCH] Update subscriptions after analysis server restart. --- .../flutter/dart/FlutterDartAnalysisServer.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/io/flutter/dart/FlutterDartAnalysisServer.java b/src/io/flutter/dart/FlutterDartAnalysisServer.java index 48215062cb..63ccf975d1 100644 --- a/src/io/flutter/dart/FlutterDartAnalysisServer.java +++ b/src/io/flutter/dart/FlutterDartAnalysisServer.java @@ -7,6 +7,7 @@ import com.google.common.collect.Lists; import com.google.common.util.concurrent.Uninterruptibles; +import com.google.dart.server.AnalysisServerListenerAdapter; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; @@ -16,9 +17,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.Consumer; import com.jetbrains.lang.dart.analyzer.DartAnalysisServerService; -import org.dartlang.analysis.server.protocol.FlutterOutline; -import org.dartlang.analysis.server.protocol.FlutterService; -import org.dartlang.analysis.server.protocol.SourceChange; +import org.dartlang.analysis.server.protocol.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -58,6 +57,16 @@ public static FlutterDartAnalysisServer getInstance(@NotNull final Project proje private FlutterDartAnalysisServer(@NotNull Project project) { analysisService = DartPlugin.getInstance().getAnalysisService(project); analysisService.addResponseListener(FlutterDartAnalysisServer.this::processResponse); + analysisService.addAnalysisServerListener(new AnalysisServerListenerAdapter() { + @Override + public void serverConnected(String s) { + // If the server reconnected we need to let it know that we still care + // about our subscriptions. + if (!subscriptions.isEmpty()) { + sendSubscriptions(); + } + } + }); } public void addOutlineListener(@NotNull final String filePath, @NotNull final FlutterOutlineListener listener) {