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

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

Issue 1089453002: Avoid redundant calls to "pub list" when multiple dependencies change. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Add missing source file. Created 5 years, 8 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/analysis_server/lib/src/context_manager.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 analysis.server; 5 library analysis.server;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection'; 8 import 'dart:collection';
9 import 'dart:math' show max; 9 import 'dart:math' show max;
10 10
11 import 'package:analysis_server/src/analysis_logger.dart'; 11 import 'package:analysis_server/src/analysis_logger.dart';
12 import 'package:analysis_server/src/channel/channel.dart'; 12 import 'package:analysis_server/src/channel/channel.dart';
13 import 'package:analysis_server/src/context_manager.dart'; 13 import 'package:analysis_server/src/context_manager.dart';
14 import 'package:analysis_server/src/operation/operation.dart'; 14 import 'package:analysis_server/src/operation/operation.dart';
15 import 'package:analysis_server/src/operation/operation_analysis.dart'; 15 import 'package:analysis_server/src/operation/operation_analysis.dart';
16 import 'package:analysis_server/src/operation/operation_queue.dart'; 16 import 'package:analysis_server/src/operation/operation_queue.dart';
17 import 'package:analysis_server/src/protocol.dart' hide Element; 17 import 'package:analysis_server/src/protocol.dart' hide Element;
18 import 'package:analysis_server/src/services/correction/namespace.dart'; 18 import 'package:analysis_server/src/services/correction/namespace.dart';
19 import 'package:analysis_server/src/services/index/index.dart'; 19 import 'package:analysis_server/src/services/index/index.dart';
20 import 'package:analysis_server/src/services/search/search_engine.dart'; 20 import 'package:analysis_server/src/services/search/search_engine.dart';
21 import 'package:analysis_server/src/source/optimizing_pub_package_map_provider.d art';
21 import 'package:analyzer/file_system/file_system.dart'; 22 import 'package:analyzer/file_system/file_system.dart';
22 import 'package:analyzer/instrumentation/instrumentation.dart'; 23 import 'package:analyzer/instrumentation/instrumentation.dart';
23 import 'package:analyzer/plugin/plugin.dart'; 24 import 'package:analyzer/plugin/plugin.dart';
24 import 'package:analyzer/source/package_map_provider.dart';
25 import 'package:analyzer/src/generated/ast.dart'; 25 import 'package:analyzer/src/generated/ast.dart';
26 import 'package:analyzer/src/generated/element.dart'; 26 import 'package:analyzer/src/generated/element.dart';
27 import 'package:analyzer/src/generated/engine.dart'; 27 import 'package:analyzer/src/generated/engine.dart';
28 import 'package:analyzer/src/generated/java_engine.dart'; 28 import 'package:analyzer/src/generated/java_engine.dart';
29 import 'package:analyzer/src/generated/sdk.dart'; 29 import 'package:analyzer/src/generated/sdk.dart';
30 import 'package:analyzer/src/generated/source.dart'; 30 import 'package:analyzer/src/generated/source.dart';
31 import 'package:analyzer/src/generated/source_io.dart'; 31 import 'package:analyzer/src/generated/source_io.dart';
32 import 'package:analyzer/src/generated/utilities_general.dart'; 32 import 'package:analyzer/src/generated/utilities_general.dart';
33 33
34 typedef void OptionUpdater(AnalysisOptionsImpl options); 34 typedef void OptionUpdater(AnalysisOptionsImpl options);
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 /** 242 /**
243 * Initialize a newly created server to receive requests from and send 243 * Initialize a newly created server to receive requests from and send
244 * responses to the given [channel]. 244 * responses to the given [channel].
245 * 245 *
246 * If [rethrowExceptions] is true, then any exceptions thrown by analysis are 246 * If [rethrowExceptions] is true, then any exceptions thrown by analysis are
247 * propagated up the call stack. The default is true to allow analysis 247 * propagated up the call stack. The default is true to allow analysis
248 * exceptions to show up in unit tests, but it should be set to false when 248 * exceptions to show up in unit tests, but it should be set to false when
249 * running a full analysis server. 249 * running a full analysis server.
250 */ 250 */
251 AnalysisServer(this.channel, this.resourceProvider, 251 AnalysisServer(this.channel, this.resourceProvider,
252 PackageMapProvider packageMapProvider, Index _index, 252 OptimizingPubPackageMapProvider packageMapProvider, Index _index,
253 AnalysisServerOptions analysisServerOptions, this.defaultSdk, 253 AnalysisServerOptions analysisServerOptions, this.defaultSdk,
254 this.instrumentationService, {this.rethrowExceptions: true}) 254 this.instrumentationService, {this.rethrowExceptions: true})
255 : index = _index, 255 : index = _index,
256 searchEngine = _index != null ? createSearchEngine(_index) : null { 256 searchEngine = _index != null ? createSearchEngine(_index) : null {
257 _performance = performanceDuringStartup; 257 _performance = performanceDuringStartup;
258 operationQueue = new ServerOperationQueue(); 258 operationQueue = new ServerOperationQueue();
259 contextDirectoryManager = new ServerContextManager( 259 contextDirectoryManager = new ServerContextManager(
260 this, resourceProvider, packageMapProvider, instrumentationService); 260 this, resourceProvider, packageMapProvider, instrumentationService);
261 contextDirectoryManager.defaultOptions.incremental = true; 261 contextDirectoryManager.defaultOptions.incremental = true;
262 contextDirectoryManager.defaultOptions.incrementalApi = 262 contextDirectoryManager.defaultOptions.incrementalApi =
(...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after
1154 } 1154 }
1155 1155
1156 /** 1156 /**
1157 * Return a set of contexts containing all of the resources in the given list 1157 * Return a set of contexts containing all of the resources in the given list
1158 * of [resources]. 1158 * of [resources].
1159 */ 1159 */
1160 Set<AnalysisContext> _getContexts(List<Resource> resources) { 1160 Set<AnalysisContext> _getContexts(List<Resource> resources) {
1161 Set<AnalysisContext> contexts = new HashSet<AnalysisContext>(); 1161 Set<AnalysisContext> contexts = new HashSet<AnalysisContext>();
1162 resources.forEach((Resource resource) { 1162 resources.forEach((Resource resource) {
1163 if (resource is Folder) { 1163 if (resource is Folder) {
1164 contexts.addAll(contextDirectoryManager.contextsInAnalysisRoot(resource) ); 1164 contexts
1165 .addAll(contextDirectoryManager.contextsInAnalysisRoot(resource));
1165 } 1166 }
1166 }); 1167 });
1167 return contexts; 1168 return contexts;
1168 } 1169 }
1169 1170
1170 /** 1171 /**
1171 * Returns the [CompilationUnit] of the Dart file with the given [source] that 1172 * Returns the [CompilationUnit] of the Dart file with the given [source] that
1172 * should be used to resend notifications for already resolved unit. 1173 * should be used to resend notifications for already resolved unit.
1173 * Returns `null` if the file is not a part of any context, library has not 1174 * Returns `null` if the file is not a part of any context, library has not
1174 * been yet resolved, or any problem happened. 1175 * been yet resolved, or any problem happened.
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1292 * The default options used to create new analysis contexts. 1293 * The default options used to create new analysis contexts.
1293 */ 1294 */
1294 AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl(); 1295 AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl();
1295 1296
1296 /** 1297 /**
1297 * The controller for sending [ContextsChangedEvent]s. 1298 * The controller for sending [ContextsChangedEvent]s.
1298 */ 1299 */
1299 StreamController<ContextsChangedEvent> _onContextsChangedController; 1300 StreamController<ContextsChangedEvent> _onContextsChangedController;
1300 1301
1301 ServerContextManager(this.analysisServer, ResourceProvider resourceProvider, 1302 ServerContextManager(this.analysisServer, ResourceProvider resourceProvider,
1302 PackageMapProvider packageMapProvider, InstrumentationService service) 1303 OptimizingPubPackageMapProvider packageMapProvider,
1304 InstrumentationService service)
1303 : super(resourceProvider, packageMapProvider, service) { 1305 : super(resourceProvider, packageMapProvider, service) {
1304 _onContextsChangedController = 1306 _onContextsChangedController =
1305 new StreamController<ContextsChangedEvent>.broadcast(); 1307 new StreamController<ContextsChangedEvent>.broadcast();
1306 } 1308 }
1307 1309
1308 /** 1310 /**
1309 * The stream that is notified when contexts are added or removed. 1311 * The stream that is notified when contexts are added or removed.
1310 */ 1312 */
1311 Stream<ContextsChangedEvent> get onContextsChanged => 1313 Stream<ContextsChangedEvent> get onContextsChanged =>
1312 _onContextsChangedController.stream; 1314 _onContextsChangedController.stream;
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
1497 /** 1499 /**
1498 * The [PerformanceTag] for time spent in server request handlers. 1500 * The [PerformanceTag] for time spent in server request handlers.
1499 */ 1501 */
1500 static PerformanceTag serverRequests = new PerformanceTag('serverRequests'); 1502 static PerformanceTag serverRequests = new PerformanceTag('serverRequests');
1501 1503
1502 /** 1504 /**
1503 * The [PerformanceTag] for time spent in split store microtasks. 1505 * The [PerformanceTag] for time spent in split store microtasks.
1504 */ 1506 */
1505 static PerformanceTag splitStore = new PerformanceTag('splitStore'); 1507 static PerformanceTag splitStore = new PerformanceTag('splitStore');
1506 } 1508 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/context_manager.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698