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

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

Issue 914373004: Use package: URIs for files in lib (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Added test and fixed URI usage Created 5 years, 10 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
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 328
329 /** 329 /**
330 * There was an error related to the socket from which requests are being 330 * There was an error related to the socket from which requests are being
331 * read. 331 * read.
332 */ 332 */
333 void error(argument) { 333 void error(argument) {
334 running = false; 334 running = false;
335 } 335 }
336 336
337 /** 337 /**
338 * Performs all scheduled analysis operations.
339 */
340 void test_performAllAnalysisOperations() {
341 while (true) {
342 ServerOperation operation = operationQueue.takeIf((operation) {
343 return operation is PerformAnalysisOperation;
344 });
345 if (operation == null) {
346 break;
347 }
348 operation.perform(this);
349 }
350 }
351
352 /**
353 * If the given notice applies to a file contained within an analysis root, 338 * If the given notice applies to a file contained within an analysis root,
354 * notify interested parties that the file has been (at least partially) 339 * notify interested parties that the file has been (at least partially)
355 * analyzed. 340 * analyzed.
356 */ 341 */
357 void fileAnalyzed(ChangeNotice notice) { 342 void fileAnalyzed(ChangeNotice notice) {
358 if (contextDirectoryManager.isInAnalysisRoot(notice.source.fullName)) { 343 if (contextDirectoryManager.isInAnalysisRoot(notice.source.fullName)) {
359 _onFileAnalyzedController.add(notice); 344 _onFileAnalyzedController.add(notice);
360 } 345 }
361 } 346 }
362 347
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 } 453 }
469 // prepare Source 454 // prepare Source
470 Source source = getSource(file); 455 Source source = getSource(file);
471 if (context.getKindOf(source) == SourceKind.UNKNOWN) { 456 if (context.getKindOf(source) == SourceKind.UNKNOWN) {
472 return null; 457 return null;
473 } 458 }
474 // get errors for the file 459 // get errors for the file
475 return context.getErrors(source); 460 return context.getErrors(source);
476 } 461 }
477 462
478 // TODO(brianwilkerson) Add the following method after 'prioritySources' has
479 // been added to InternalAnalysisContext.
480 // /**
481 // * Return a list containing the full names of all of the sources that are
482 // * priority sources.
483 // */
484 // List<String> getPriorityFiles() {
485 // List<String> priorityFiles = new List<String>();
486 // folderMap.values.forEach((ContextDirectory directory) {
487 // InternalAnalysisContext context = directory.context;
488 // context.prioritySources.forEach((Source source) {
489 // priorityFiles.add(source.fullName);
490 // });
491 // });
492 // return priorityFiles;
493 // }
494
495 /** 463 /**
496 * Returns resolved [AstNode]s at the given [offset] of the given [file]. 464 * Returns resolved [AstNode]s at the given [offset] of the given [file].
497 * 465 *
498 * May be empty, but not `null`. 466 * May be empty, but not `null`.
499 */ 467 */
500 List<AstNode> getNodesAtOffset(String file, int offset) { 468 List<AstNode> getNodesAtOffset(String file, int offset) {
501 List<CompilationUnit> units = getResolvedCompilationUnits(file); 469 List<CompilationUnit> units = getResolvedCompilationUnits(file);
502 List<AstNode> nodes = <AstNode>[]; 470 List<AstNode> nodes = <AstNode>[];
503 for (CompilationUnit unit in units) { 471 for (CompilationUnit unit in units) {
504 AstNode node = new NodeLocator.con1(offset).searchWithin(unit); 472 AstNode node = new NodeLocator.con1(offset).searchWithin(unit);
505 if (node != null) { 473 if (node != null) {
506 nodes.add(node); 474 nodes.add(node);
507 } 475 }
508 } 476 }
509 return nodes; 477 return nodes;
510 } 478 }
511 479
480 // TODO(brianwilkerson) Add the following method after 'prioritySources' has
481 // been added to InternalAnalysisContext.
482 // /**
483 // * Return a list containing the full names of all of the sources that are
484 // * priority sources.
485 // */
486 // List<String> getPriorityFiles() {
487 // List<String> priorityFiles = new List<String>();
488 // folderMap.values.forEach((ContextDirectory directory) {
489 // InternalAnalysisContext context = directory.context;
490 // context.prioritySources.forEach((Source source) {
491 // priorityFiles.add(source.fullName);
492 // });
493 // });
494 // return priorityFiles;
495 // }
496
512 /** 497 /**
513 * Returns resolved [CompilationUnit]s of the Dart file with the given [path]. 498 * Returns resolved [CompilationUnit]s of the Dart file with the given [path].
514 * 499 *
515 * May be empty, but not `null`. 500 * May be empty, but not `null`.
516 */ 501 */
517 List<CompilationUnit> getResolvedCompilationUnits(String path) { 502 List<CompilationUnit> getResolvedCompilationUnits(String path) {
518 List<CompilationUnit> units = <CompilationUnit>[]; 503 List<CompilationUnit> units = <CompilationUnit>[];
519 // prepare AnalysisContext 504 // prepare AnalysisContext
520 AnalysisContext context = getAnalysisContext(path); 505 AnalysisContext context = getAnalysisContext(path);
521 if (context == null) { 506 if (context == null) {
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
963 void test_flushResolvedUnit(String file) { 948 void test_flushResolvedUnit(String file) {
964 if (AnalysisEngine.isDartFileName(file)) { 949 if (AnalysisEngine.isDartFileName(file)) {
965 AnalysisContextImpl context = getAnalysisContext(file); 950 AnalysisContextImpl context = getAnalysisContext(file);
966 Source source = getSource(file); 951 Source source = getSource(file);
967 DartEntry dartEntry = context.getReadableSourceEntryOrNull(source); 952 DartEntry dartEntry = context.getReadableSourceEntryOrNull(source);
968 dartEntry.flushAstStructures(); 953 dartEntry.flushAstStructures();
969 } 954 }
970 } 955 }
971 956
972 /** 957 /**
958 * Performs all scheduled analysis operations.
959 */
960 void test_performAllAnalysisOperations() {
961 while (true) {
962 ServerOperation operation = operationQueue.takeIf((operation) {
963 return operation is PerformAnalysisOperation;
964 });
965 if (operation == null) {
966 break;
967 }
968 operation.perform(this);
969 }
970 }
971
972 /**
973 * Implementation for `analysis.updateContent`. 973 * Implementation for `analysis.updateContent`.
974 */ 974 */
975 void updateContent(String id, Map<String, dynamic> changes) { 975 void updateContent(String id, Map<String, dynamic> changes) {
976 changes.forEach((file, change) { 976 changes.forEach((file, change) {
977 Source source = getSource(file); 977 Source source = getSource(file);
978 operationQueue.sourceAboutToChange(source); 978 operationQueue.sourceAboutToChange(source);
979 // Prepare the new contents. 979 // Prepare the new contents.
980 String oldContents = _overlayState.getContents(source); 980 String oldContents = _overlayState.getContents(source);
981 String newContents; 981 String newContents;
982 if (change is AddContentOverlay) { 982 if (change is AddContentOverlay) {
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
1163 new StreamController<ContextsChangedEvent>.broadcast(); 1163 new StreamController<ContextsChangedEvent>.broadcast();
1164 } 1164 }
1165 1165
1166 /** 1166 /**
1167 * The stream that is notified when contexts are added or removed. 1167 * The stream that is notified when contexts are added or removed.
1168 */ 1168 */
1169 Stream<ContextsChangedEvent> get onContextsChanged => 1169 Stream<ContextsChangedEvent> get onContextsChanged =>
1170 _onContextsChangedController.stream; 1170 _onContextsChangedController.stream;
1171 1171
1172 @override 1172 @override
1173 void addContext(Folder folder, UriResolver packageUriResolver) { 1173 AnalysisContext addContext(Folder folder, UriResolver packageUriResolver) {
1174 InternalAnalysisContext context = 1174 InternalAnalysisContext context =
1175 AnalysisEngine.instance.createAnalysisContext(); 1175 AnalysisEngine.instance.createAnalysisContext();
1176 context.contentCache = analysisServer._overlayState; 1176 context.contentCache = analysisServer._overlayState;
1177 analysisServer.folderMap[folder] = context; 1177 analysisServer.folderMap[folder] = context;
1178 context.sourceFactory = _createSourceFactory(packageUriResolver); 1178 context.sourceFactory = _createSourceFactory(packageUriResolver);
1179 context.analysisOptions = new AnalysisOptionsImpl.con1(defaultOptions); 1179 context.analysisOptions = new AnalysisOptionsImpl.con1(defaultOptions);
1180 _onContextsChangedController.add( 1180 _onContextsChangedController.add(
1181 new ContextsChangedEvent(added: [context])); 1181 new ContextsChangedEvent(added: [context]));
1182 analysisServer.schedulePerformAnalysisOperation(context); 1182 analysisServer.schedulePerformAnalysisOperation(context);
1183 return context;
1183 } 1184 }
1184 1185
1185 @override 1186 @override
1186 void applyChangesToContext(Folder contextFolder, ChangeSet changeSet) { 1187 void applyChangesToContext(Folder contextFolder, ChangeSet changeSet) {
1187 AnalysisContext context = analysisServer.folderMap[contextFolder]; 1188 AnalysisContext context = analysisServer.folderMap[contextFolder];
1188 if (context != null) { 1189 if (context != null) {
1189 context.applyChanges(changeSet); 1190 context.applyChanges(changeSet);
1190 analysisServer.schedulePerformAnalysisOperation(context); 1191 analysisServer.schedulePerformAnalysisOperation(context);
1191 } 1192 }
1192 } 1193 }
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1325 new DateTime.now().millisecondsSinceEpoch - 1326 new DateTime.now().millisecondsSinceEpoch -
1326 request.clientRequestTime; 1327 request.clientRequestTime;
1327 requestLatency += latency; 1328 requestLatency += latency;
1328 maxLatency = max(maxLatency, latency); 1329 maxLatency = max(maxLatency, latency);
1329 if (latency > 150) { 1330 if (latency > 150) {
1330 ++slowRequestCount; 1331 ++slowRequestCount;
1331 } 1332 }
1332 } 1333 }
1333 } 1334 }
1334 } 1335 }
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