Index: pkg/analysis_server/lib/src/operation/operation_analysis.dart |
diff --git a/pkg/analysis_server/lib/src/operation/operation_analysis.dart b/pkg/analysis_server/lib/src/operation/operation_analysis.dart |
index c17f399bd20198447817e9b514335cecb85f8194..198955c4e705d20b767f1b620fa00f6e8834b2b9 100644 |
--- a/pkg/analysis_server/lib/src/operation/operation_analysis.dart |
+++ b/pkg/analysis_server/lib/src/operation/operation_analysis.dart |
@@ -9,13 +9,16 @@ import 'package:analysis_server/src/computer/computer_highlights.dart'; |
import 'package:analysis_server/src/computer/computer_highlights2.dart'; |
import 'package:analysis_server/src/computer/computer_outline.dart'; |
import 'package:analysis_server/src/computer/computer_overrides.dart'; |
+import 'package:analysis_server/src/domains/analysis/implemented_dart.dart'; |
import 'package:analysis_server/src/domains/analysis/navigation.dart'; |
import 'package:analysis_server/src/domains/analysis/occurrences.dart'; |
import 'package:analysis_server/src/operation/operation.dart'; |
import 'package:analysis_server/src/protocol_server.dart' as protocol; |
import 'package:analysis_server/src/services/dependencies/library_dependencies.dart'; |
import 'package:analysis_server/src/services/index/index.dart'; |
+import 'package:analysis_server/src/services/search/search_engine.dart'; |
import 'package:analyzer/src/generated/ast.dart'; |
+import 'package:analyzer/src/generated/element.dart'; |
import 'package:analyzer/src/generated/engine.dart'; |
import 'package:analyzer/src/generated/error.dart'; |
import 'package:analyzer/src/generated/html.dart'; |
@@ -39,6 +42,25 @@ runWithWorkingCacheSize(AnalysisContext context, f()) { |
} |
} |
+scheduleImplementedNotification( |
+ AnalysisServer server, Iterable<String> files) async { |
+ SearchEngine searchEngine = server.searchEngine; |
+ if (searchEngine == null) { |
+ return; |
+ } |
+ for (String file in files) { |
+ CompilationUnitElement unitElement = server.getCompilationUnitElement(file); |
+ if (unitElement != null) { |
+ ImplementedComputer computer = |
+ new ImplementedComputer(searchEngine, unitElement); |
+ await computer.compute(); |
+ var params = new protocol.AnalysisImplementedParams( |
+ file, computer.classes, computer.members); |
+ server.sendNotification(params.toNotification()); |
+ } |
+ } |
+} |
+ |
/** |
* Schedules indexing of the given [file] using the resolved [dartUnit]. |
*/ |