| OLD | NEW |
| 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 import 'dart:async'; | 5 import 'dart:async'; |
| 6 import 'dart:collection'; | 6 import 'dart:collection'; |
| 7 import 'dart:core'; | 7 import 'dart:core'; |
| 8 import 'dart:io' as io; | 8 import 'dart:io' as io; |
| 9 import 'dart:math' show max; | 9 import 'dart:math' show max; |
| 10 | 10 |
| (...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 553 return driver; | 553 return driver; |
| 554 } | 554 } |
| 555 return null; | 555 return null; |
| 556 } | 556 } |
| 557 | 557 |
| 558 /** | 558 /** |
| 559 * Return the analysis result for the file with the given [path]. The file is | 559 * Return the analysis result for the file with the given [path]. The file is |
| 560 * analyzed in one of the analysis drivers to which the file was added, | 560 * analyzed in one of the analysis drivers to which the file was added, |
| 561 * otherwise in the first driver, otherwise `null` is returned. | 561 * otherwise in the first driver, otherwise `null` is returned. |
| 562 */ | 562 */ |
| 563 Future<nd.AnalysisResult> getAnalysisResult(String path) async { | 563 Future<nd.AnalysisResult> getAnalysisResult(String path, |
| 564 {bool sendCachedToStream: false}) async { |
| 564 if (!AnalysisEngine.isDartFileName(path)) { | 565 if (!AnalysisEngine.isDartFileName(path)) { |
| 565 return null; | 566 return null; |
| 566 } | 567 } |
| 567 | 568 |
| 568 try { | 569 try { |
| 569 nd.AnalysisDriver driver = getAnalysisDriver(path); | 570 nd.AnalysisDriver driver = getAnalysisDriver(path); |
| 570 return await driver?.getResult(path); | 571 return await driver?.getResult(path, |
| 572 sendCachedToStream: sendCachedToStream); |
| 571 } catch (e) { | 573 } catch (e) { |
| 572 // Ignore the exception. | 574 // Ignore the exception. |
| 573 // We don't want to log the same exception again and again. | 575 // We don't want to log the same exception again and again. |
| 574 return null; | 576 return null; |
| 575 } | 577 } |
| 576 } | 578 } |
| 577 | 579 |
| 578 /** | 580 /** |
| 579 * Return the [AstProvider] for the given [path]. | 581 * Return the [AstProvider] for the given [path]. |
| 580 */ | 582 */ |
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 864 notificationManager.setSubscriptions(subscriptions); | 866 notificationManager.setSubscriptions(subscriptions); |
| 865 } | 867 } |
| 866 this.analysisServices = subscriptions; | 868 this.analysisServices = subscriptions; |
| 867 Set<String> allNewFiles = | 869 Set<String> allNewFiles = |
| 868 subscriptions.values.expand((files) => files).toSet(); | 870 subscriptions.values.expand((files) => files).toSet(); |
| 869 for (String file in allNewFiles) { | 871 for (String file in allNewFiles) { |
| 870 // The result will be produced by the "results" stream with | 872 // The result will be produced by the "results" stream with |
| 871 // the fully resolved unit, and processed with sending analysis | 873 // the fully resolved unit, and processed with sending analysis |
| 872 // notifications as it happens after content changes. | 874 // notifications as it happens after content changes. |
| 873 if (AnalysisEngine.isDartFileName(file)) { | 875 if (AnalysisEngine.isDartFileName(file)) { |
| 874 getAnalysisResult(file); | 876 getAnalysisResult(file, sendCachedToStream: true); |
| 875 } | 877 } |
| 876 } | 878 } |
| 877 } | 879 } |
| 878 | 880 |
| 879 /** | 881 /** |
| 880 * Implementation for `analysis.setGeneralSubscriptions`. | 882 * Implementation for `analysis.setGeneralSubscriptions`. |
| 881 */ | 883 */ |
| 882 void setGeneralAnalysisSubscriptions( | 884 void setGeneralAnalysisSubscriptions( |
| 883 List<GeneralAnalysisService> subscriptions) { | 885 List<GeneralAnalysisService> subscriptions) { |
| 884 Set<GeneralAnalysisService> newServices = subscriptions.toSet(); | 886 Set<GeneralAnalysisService> newServices = subscriptions.toSet(); |
| (...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1494 /** | 1496 /** |
| 1495 * The [PerformanceTag] for time spent in server request handlers. | 1497 * The [PerformanceTag] for time spent in server request handlers. |
| 1496 */ | 1498 */ |
| 1497 static PerformanceTag serverRequests = server.createChild('requests'); | 1499 static PerformanceTag serverRequests = server.createChild('requests'); |
| 1498 | 1500 |
| 1499 /** | 1501 /** |
| 1500 * The [PerformanceTag] for time spent in split store microtasks. | 1502 * The [PerformanceTag] for time spent in split store microtasks. |
| 1501 */ | 1503 */ |
| 1502 static PerformanceTag splitStore = new PerformanceTag('splitStore'); | 1504 static PerformanceTag splitStore = new PerformanceTag('splitStore'); |
| 1503 } | 1505 } |
| OLD | NEW |