| 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 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 1002 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1013 } | 1013 } |
| 1014 } else if (change is RemoveContentOverlay) { | 1014 } else if (change is RemoveContentOverlay) { |
| 1015 newContents = null; | 1015 newContents = null; |
| 1016 } else { | 1016 } else { |
| 1017 // Protocol parsing should have ensured that we never get here. | 1017 // Protocol parsing should have ensured that we never get here. |
| 1018 throw new AnalysisException('Illegal change type'); | 1018 throw new AnalysisException('Illegal change type'); |
| 1019 } | 1019 } |
| 1020 overlayState.setContents(source, newContents); | 1020 overlayState.setContents(source, newContents); |
| 1021 // Update all contexts. | 1021 // Update all contexts. |
| 1022 for (InternalAnalysisContext context in folderMap.values) { | 1022 for (InternalAnalysisContext context in folderMap.values) { |
| 1023 if (context.handleContentsChanged( | 1023 List<Source> sources = context.getSourcesWithFullName(file); |
| 1024 source, oldContents, newContents, true)) { | 1024 sources.forEach((Source source) { |
| 1025 schedulePerformAnalysisOperation(context); | 1025 if (context.handleContentsChanged( |
| 1026 } else { | 1026 source, oldContents, newContents, true)) { |
| 1027 // When the client sends any change for a source, we should resend | 1027 schedulePerformAnalysisOperation(context); |
| 1028 // subscribed notifications, even if there were no changes in the | 1028 } else { |
| 1029 // source contents. | 1029 // When the client sends any change for a source, we should resend |
| 1030 // TODO(scheglov) consider checking if there are subscriptions. | 1030 // subscribed notifications, even if there were no changes in the |
| 1031 if (AnalysisEngine.isDartFileName(file)) { | 1031 // source contents. |
| 1032 List<CompilationUnit> dartUnits = | 1032 // TODO(scheglov) consider checking if there are subscriptions. |
| 1033 context.ensureResolvedDartUnits(source); | 1033 if (AnalysisEngine.isDartFileName(file)) { |
| 1034 if (dartUnits != null) { | 1034 List<CompilationUnit> dartUnits = |
| 1035 AnalysisErrorInfo errorInfo = context.getErrors(source); | 1035 context.ensureResolvedDartUnits(source); |
| 1036 for (var dartUnit in dartUnits) { | 1036 if (dartUnits != null) { |
| 1037 scheduleNotificationOperations(this, file, errorInfo.lineInfo, | 1037 AnalysisErrorInfo errorInfo = context.getErrors(source); |
| 1038 context, null, dartUnit, errorInfo.errors); | 1038 for (var dartUnit in dartUnits) { |
| 1039 scheduleIndexOperation(this, file, context, dartUnit); | 1039 scheduleNotificationOperations(this, file, errorInfo.lineInfo, |
| 1040 context, null, dartUnit, errorInfo.errors); |
| 1041 scheduleIndexOperation(this, file, context, dartUnit); |
| 1042 } |
| 1043 } else { |
| 1044 schedulePerformAnalysisOperation(context); |
| 1040 } | 1045 } |
| 1041 } else { | |
| 1042 schedulePerformAnalysisOperation(context); | |
| 1043 } | 1046 } |
| 1044 } | 1047 } |
| 1045 } | 1048 }); |
| 1046 } | 1049 } |
| 1047 }); | 1050 }); |
| 1048 } | 1051 } |
| 1049 | 1052 |
| 1050 /** | 1053 /** |
| 1051 * Use the given updaters to update the values of the options in every | 1054 * Use the given updaters to update the values of the options in every |
| 1052 * existing analysis context. | 1055 * existing analysis context. |
| 1053 */ | 1056 */ |
| 1054 void updateOptions(List<OptionUpdater> optionUpdaters) { | 1057 void updateOptions(List<OptionUpdater> optionUpdaters) { |
| 1055 // | 1058 // |
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1364 /** | 1367 /** |
| 1365 * The [PerformanceTag] for time spent in server request handlers. | 1368 * The [PerformanceTag] for time spent in server request handlers. |
| 1366 */ | 1369 */ |
| 1367 static PerformanceTag serverRequests = new PerformanceTag('serverRequests'); | 1370 static PerformanceTag serverRequests = new PerformanceTag('serverRequests'); |
| 1368 | 1371 |
| 1369 /** | 1372 /** |
| 1370 * The [PerformanceTag] for time spent in split store microtasks. | 1373 * The [PerformanceTag] for time spent in split store microtasks. |
| 1371 */ | 1374 */ |
| 1372 static PerformanceTag splitStore = new PerformanceTag('splitStore'); | 1375 static PerformanceTag splitStore = new PerformanceTag('splitStore'); |
| 1373 } | 1376 } |
| OLD | NEW |