Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1742)

Side by Side Diff: pkg/analysis_server/lib/src/operation/operation_analysis.dart

Issue 956623006: Merge notifications computing into the 'notices' tag. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/engine.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library operation.analysis; 5 library operation.analysis;
6 6
7 import 'package:analysis_server/src/analysis_server.dart'; 7 import 'package:analysis_server/src/analysis_server.dart';
8 import 'package:analysis_server/src/computer/computer_highlights.dart'; 8 import 'package:analysis_server/src/computer/computer_highlights.dart';
9 import 'package:analysis_server/src/computer/computer_navigation.dart'; 9 import 'package:analysis_server/src/computer/computer_navigation.dart';
10 import 'package:analysis_server/src/computer/computer_occurrences.dart'; 10 import 'package:analysis_server/src/computer/computer_occurrences.dart';
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 // errors 77 // errors
78 if (server.shouldSendErrorsNotificationFor(file)) { 78 if (server.shouldSendErrorsNotificationFor(file)) {
79 server.scheduleOperation( 79 server.scheduleOperation(
80 new _NotificationErrorsOperation(file, lineInfo, errors)); 80 new _NotificationErrorsOperation(file, lineInfo, errors));
81 } 81 }
82 } 82 }
83 83
84 84
85 void sendAnalysisNotificationErrors(AnalysisServer server, String file, 85 void sendAnalysisNotificationErrors(AnalysisServer server, String file,
86 LineInfo lineInfo, List<AnalysisError> errors) { 86 LineInfo lineInfo, List<AnalysisError> errors) {
87 try { 87 _sendNotification(server, () {
88 if (errors == null) { 88 if (errors == null) {
89 errors = <AnalysisError>[]; 89 errors = <AnalysisError>[];
90 } 90 }
91 var serverErrors = 91 var serverErrors =
92 protocol.doAnalysisError_listFromEngine(lineInfo, errors); 92 protocol.doAnalysisError_listFromEngine(lineInfo, errors);
93 var params = new protocol.AnalysisErrorsParams(file, serverErrors); 93 var params = new protocol.AnalysisErrorsParams(file, serverErrors);
94 server.sendNotification(params.toNotification()); 94 server.sendNotification(params.toNotification());
95 } catch (exception, stackTrace) { 95 });
96 server.sendServerErrorNotification(exception, stackTrace);
97 }
98 } 96 }
99 97
100
101 void sendAnalysisNotificationHighlights(AnalysisServer server, String file, 98 void sendAnalysisNotificationHighlights(AnalysisServer server, String file,
102 CompilationUnit dartUnit) { 99 CompilationUnit dartUnit) {
103 try { 100 _sendNotification(server, () {
104 var regions = new DartUnitHighlightsComputer(dartUnit).compute(); 101 var regions = new DartUnitHighlightsComputer(dartUnit).compute();
105 var params = new protocol.AnalysisHighlightsParams(file, regions); 102 var params = new protocol.AnalysisHighlightsParams(file, regions);
106 server.sendNotification(params.toNotification()); 103 server.sendNotification(params.toNotification());
107 } catch (exception, stackTrace) { 104 });
108 server.sendServerErrorNotification(exception, stackTrace);
109 }
110 } 105 }
111 106
112 107
113 void sendAnalysisNotificationNavigation(AnalysisServer server, String file, 108 void sendAnalysisNotificationNavigation(AnalysisServer server, String file,
114 CompilationUnit dartUnit) { 109 CompilationUnit dartUnit) {
115 try { 110 _sendNotification(server, () {
116 var computer = new DartUnitNavigationComputer(dartUnit); 111 var computer = new DartUnitNavigationComputer(dartUnit);
117 computer.compute(); 112 computer.compute();
118 var params = new protocol.AnalysisNavigationParams( 113 var params = new protocol.AnalysisNavigationParams(
119 file, 114 file,
120 computer.regions, 115 computer.regions,
121 computer.targets, 116 computer.targets,
122 computer.files); 117 computer.files);
123 server.sendNotification(params.toNotification()); 118 server.sendNotification(params.toNotification());
124 } catch (exception, stackTrace) { 119 });
125 server.sendServerErrorNotification(exception, stackTrace);
126 }
127 } 120 }
128 121
129 122
130 void sendAnalysisNotificationOccurrences(AnalysisServer server, String file, 123 void sendAnalysisNotificationOccurrences(AnalysisServer server, String file,
131 CompilationUnit dartUnit) { 124 CompilationUnit dartUnit) {
132 try { 125 _sendNotification(server, () {
133 var occurrences = new DartUnitOccurrencesComputer(dartUnit).compute(); 126 var occurrences = new DartUnitOccurrencesComputer(dartUnit).compute();
134 var params = new protocol.AnalysisOccurrencesParams(file, occurrences); 127 var params = new protocol.AnalysisOccurrencesParams(file, occurrences);
135 server.sendNotification(params.toNotification()); 128 server.sendNotification(params.toNotification());
136 } catch (exception, stackTrace) { 129 });
137 server.sendServerErrorNotification(exception, stackTrace);
138 }
139 } 130 }
140 131
141 132
142 void sendAnalysisNotificationOutline(AnalysisServer server, String file, 133 void sendAnalysisNotificationOutline(AnalysisServer server, String file,
143 LineInfo lineInfo, CompilationUnit dartUnit) { 134 LineInfo lineInfo, CompilationUnit dartUnit) {
144 try { 135 _sendNotification(server, () {
145 var computer = new DartUnitOutlineComputer(file, lineInfo, dartUnit); 136 var computer = new DartUnitOutlineComputer(file, lineInfo, dartUnit);
146 var outline = computer.compute(); 137 var outline = computer.compute();
147 var params = new protocol.AnalysisOutlineParams(file, outline); 138 var params = new protocol.AnalysisOutlineParams(file, outline);
148 server.sendNotification(params.toNotification()); 139 server.sendNotification(params.toNotification());
149 } catch (exception, stackTrace) { 140 });
150 server.sendServerErrorNotification(exception, stackTrace);
151 }
152 } 141 }
153 142
154 143
155 void sendAnalysisNotificationOverrides(AnalysisServer server, String file, 144 void sendAnalysisNotificationOverrides(AnalysisServer server, String file,
156 CompilationUnit dartUnit) { 145 CompilationUnit dartUnit) {
157 try { 146 _sendNotification(server, () {
158 var overrides = new DartUnitOverridesComputer(dartUnit).compute(); 147 var overrides = new DartUnitOverridesComputer(dartUnit).compute();
159 var params = new protocol.AnalysisOverridesParams(file, overrides); 148 var params = new protocol.AnalysisOverridesParams(file, overrides);
160 server.sendNotification(params.toNotification()); 149 server.sendNotification(params.toNotification());
161 } catch (exception, stackTrace) { 150 });
162 server.sendServerErrorNotification(exception, stackTrace);
163 }
164 } 151 }
165 152
166 153
154 /**
155 * Runs the given notification producing function [f], catching exceptions.
156 */
157 void _sendNotification(AnalysisServer server, f()) {
158 ServerPerformanceStatistics.notices.makeCurrentWhile(() {
159 try {
160 f();
161 } catch (exception, stackTrace) {
162 server.sendServerErrorNotification(exception, stackTrace);
163 }
164 });
165 }
166
167
167 /** 168 /**
168 * Instances of [PerformAnalysisOperation] perform a single analysis task. 169 * Instances of [PerformAnalysisOperation] perform a single analysis task.
169 */ 170 */
170 class PerformAnalysisOperation extends ServerOperation { 171 class PerformAnalysisOperation extends ServerOperation {
171 static const int IDLE_CACHE_SIZE = AnalysisOptionsImpl.DEFAULT_CACHE_SIZE; 172 static const int IDLE_CACHE_SIZE = AnalysisOptionsImpl.DEFAULT_CACHE_SIZE;
172 static const int WORKING_CACHE_SIZE = 512; 173 static const int WORKING_CACHE_SIZE = 512;
173 174
174 final AnalysisContext context; 175 final AnalysisContext context;
175 final bool isContinue; 176 final bool isContinue;
176 177
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 abstract class _SingleFileOperation extends SourceSensitiveOperation { 422 abstract class _SingleFileOperation extends SourceSensitiveOperation {
422 final String file; 423 final String file;
423 424
424 _SingleFileOperation(this.file); 425 _SingleFileOperation(this.file);
425 426
426 @override 427 @override
427 bool shouldBeDiscardedOnSourceChange(Source source) { 428 bool shouldBeDiscardedOnSourceChange(Source source) {
428 return source.fullName == file; 429 return source.fullName == file;
429 } 430 }
430 } 431 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/engine.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698