Chromium Code Reviews| 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 f90a9f1f6c0db52280fb0dfdcedb8e1916d2d65e..44d1f02fed4c6ee0eb681225c3c1c3b3b344853c 100644 |
| --- a/pkg/analysis_server/lib/src/operation/operation_analysis.dart |
| +++ b/pkg/analysis_server/lib/src/operation/operation_analysis.dart |
| @@ -8,6 +8,7 @@ import 'package:analysis_server/src/operation/operation.dart'; |
| import 'package:analysis_server/src/analysis_server.dart'; |
| import 'package:analysis_server/src/computer/computer_highlights.dart'; |
| import 'package:analysis_server/src/computer/computer_navigation.dart'; |
| +import 'package:analysis_server/src/computer/computer_outline.dart'; |
| import 'package:analysis_server/src/constants.dart'; |
| import 'package:analysis_server/src/protocol.dart'; |
| import 'package:analyzer/src/generated/ast.dart'; |
| @@ -76,6 +77,9 @@ class PerformAnalysisOperation extends ServerOperation { |
| if (server.hasAnalysisSubscription(AnalysisService.NAVIGATION, file)) { |
| sendAnalysisNotificationNavigation(server, file, dartUnit); |
| } |
| + if (server.hasAnalysisSubscription(AnalysisService.OUTLINE, file)) { |
| + sendAnalysisNotificationOutline(server, file, dartUnit); |
| + } |
| } |
| if (!source.isInSystemLibrary) { |
| sendAnalysisNotificationErrors(server, file, notice.errors); |
| @@ -84,6 +88,7 @@ class PerformAnalysisOperation extends ServerOperation { |
| } |
| } |
| + |
|
Brian Wilkerson
2014/06/04 23:54:00
I don't actually like having two blank lines betwe
scheglov
2014/06/05 01:37:51
Why not both?
Two lines help to distinguish visua
|
| void sendAnalysisNotificationErrors(AnalysisServer server, |
| String file, List<AnalysisError> errors) { |
| Notification notification = new Notification(NOTIFICATION_ERRORS); |
| @@ -92,6 +97,7 @@ void sendAnalysisNotificationErrors(AnalysisServer server, |
| server.sendNotification(notification); |
| } |
| + |
| void sendAnalysisNotificationHighlights(AnalysisServer server, |
| String file, CompilationUnit dartUnit) { |
| Notification notification = new Notification(NOTIFICATION_HIGHLIGHTS); |
| @@ -102,6 +108,7 @@ void sendAnalysisNotificationHighlights(AnalysisServer server, |
| server.sendNotification(notification); |
| } |
| + |
| void sendAnalysisNotificationNavigation(AnalysisServer server, |
| String file, CompilationUnit dartUnit) { |
| Notification notification = new Notification(NOTIFICATION_NAVIGATION); |
| @@ -112,6 +119,18 @@ void sendAnalysisNotificationNavigation(AnalysisServer server, |
| server.sendNotification(notification); |
| } |
| + |
| +void sendAnalysisNotificationOutline(AnalysisServer server, |
| + String file, CompilationUnit dartUnit) { |
| + Notification notification = new Notification(NOTIFICATION_OUTLINE); |
| + notification.setParameter(FILE, file); |
| + notification.setParameter( |
| + OUTLINE, |
| + new DartUnitOutlineComputer(dartUnit).compute()); |
| + server.sendNotification(notification); |
| +} |
| + |
| + |
| Map<String, Object> errorToJson(AnalysisError analysisError) { |
| // TODO(paulberry): move this function into the AnalysisError class. |
| ErrorCode errorCode = analysisError.errorCode; |