| 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 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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 } | 94 } |
| 95 // errors | 95 // errors |
| 96 if (server.shouldSendErrorsNotificationFor(file)) { | 96 if (server.shouldSendErrorsNotificationFor(file)) { |
| 97 server.scheduleOperation( | 97 server.scheduleOperation( |
| 98 new _NotificationErrorsOperation(context, file, lineInfo, errors)); | 98 new _NotificationErrorsOperation(context, file, lineInfo, errors)); |
| 99 } | 99 } |
| 100 } | 100 } |
| 101 | 101 |
| 102 void sendAnalysisNotificationAnalyzedFiles(AnalysisServer server) { | 102 void sendAnalysisNotificationAnalyzedFiles(AnalysisServer server) { |
| 103 _sendNotification(server, () { | 103 _sendNotification(server, () { |
| 104 // TODO(paulberry): if it proves to be too inefficient to recompute the set |
| 105 // of analyzed files each time analysis is complete, consider modifying the |
| 106 // analysis engine to update this set incrementally as analysis is |
| 107 // performed. |
| 104 LibraryDependencyCollector collector = | 108 LibraryDependencyCollector collector = |
| 105 new LibraryDependencyCollector(server.getAnalysisContexts().toList()); | 109 new LibraryDependencyCollector(server.getAnalysisContexts().toList()); |
| 106 Set<String> directories = collector.collectLibraryDependencies(); | 110 Set<String> analyzedFiles = collector.collectLibraryDependencies(); |
| 111 Set<String> prevAnalyzedFiles = server.prevAnalyzedFiles; |
| 112 if (prevAnalyzedFiles != null && |
| 113 prevAnalyzedFiles.length == analyzedFiles.length && |
| 114 prevAnalyzedFiles.difference(analyzedFiles).isEmpty) { |
| 115 // No change to the set of analyzed files. No need to send another |
| 116 // notification. |
| 117 return; |
| 118 } |
| 119 server.prevAnalyzedFiles = analyzedFiles; |
| 107 protocol.AnalysisAnalyzedFilesParams params = | 120 protocol.AnalysisAnalyzedFilesParams params = |
| 108 new protocol.AnalysisAnalyzedFilesParams(directories.toList()); | 121 new protocol.AnalysisAnalyzedFilesParams(analyzedFiles.toList()); |
| 109 server.sendNotification(params.toNotification()); | 122 server.sendNotification(params.toNotification()); |
| 110 }); | 123 }); |
| 111 } | 124 } |
| 112 | 125 |
| 113 void sendAnalysisNotificationErrors(AnalysisServer server, String file, | 126 void sendAnalysisNotificationErrors(AnalysisServer server, String file, |
| 114 LineInfo lineInfo, List<AnalysisError> errors) { | 127 LineInfo lineInfo, List<AnalysisError> errors) { |
| 115 _sendNotification(server, () { | 128 _sendNotification(server, () { |
| 116 if (errors == null) { | 129 if (errors == null) { |
| 117 errors = <AnalysisError>[]; | 130 errors = <AnalysisError>[]; |
| 118 } | 131 } |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 abstract class _SingleFileOperation extends SourceSensitiveOperation { | 466 abstract class _SingleFileOperation extends SourceSensitiveOperation { |
| 454 final String file; | 467 final String file; |
| 455 | 468 |
| 456 _SingleFileOperation(AnalysisContext context, this.file) : super(context); | 469 _SingleFileOperation(AnalysisContext context, this.file) : super(context); |
| 457 | 470 |
| 458 @override | 471 @override |
| 459 bool shouldBeDiscardedOnSourceChange(Source source) { | 472 bool shouldBeDiscardedOnSourceChange(Source source) { |
| 460 return source.fullName == file; | 473 return source.fullName == file; |
| 461 } | 474 } |
| 462 } | 475 } |
| OLD | NEW |