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.src.status.get_handler; | 5 library analysis_server.src.status.get_handler; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:collection'; | 8 import 'dart:collection'; |
9 import 'dart:convert'; | 9 import 'dart:convert'; |
10 import 'dart:io'; | 10 import 'dart:io'; |
(...skipping 14 matching lines...) Expand all Loading... |
25 import 'package:analysis_server/src/status/ast_writer.dart'; | 25 import 'package:analysis_server/src/status/ast_writer.dart'; |
26 import 'package:analysis_server/src/status/element_writer.dart'; | 26 import 'package:analysis_server/src/status/element_writer.dart'; |
27 import 'package:analysis_server/src/utilities/average.dart'; | 27 import 'package:analysis_server/src/utilities/average.dart'; |
28 import 'package:analyzer/file_system/file_system.dart'; | 28 import 'package:analyzer/file_system/file_system.dart'; |
29 import 'package:analyzer/src/context/cache.dart'; | 29 import 'package:analyzer/src/context/cache.dart'; |
30 import 'package:analyzer/src/context/context.dart' show AnalysisContextImpl; | 30 import 'package:analyzer/src/context/context.dart' show AnalysisContextImpl; |
31 import 'package:analyzer/src/generated/ast.dart'; | 31 import 'package:analyzer/src/generated/ast.dart'; |
32 import 'package:analyzer/src/generated/element.dart'; | 32 import 'package:analyzer/src/generated/element.dart'; |
33 import 'package:analyzer/src/generated/engine.dart' | 33 import 'package:analyzer/src/generated/engine.dart' |
34 hide AnalysisCache, AnalysisContextImpl, AnalysisTask; | 34 hide AnalysisCache, AnalysisContextImpl, AnalysisTask; |
| 35 import 'package:analyzer/src/generated/error.dart'; |
35 import 'package:analyzer/src/generated/java_engine.dart'; | 36 import 'package:analyzer/src/generated/java_engine.dart'; |
36 import 'package:analyzer/src/generated/resolver.dart'; | 37 import 'package:analyzer/src/generated/resolver.dart'; |
37 import 'package:analyzer/src/generated/source.dart'; | 38 import 'package:analyzer/src/generated/source.dart'; |
38 import 'package:analyzer/src/generated/utilities_collection.dart'; | 39 import 'package:analyzer/src/generated/utilities_collection.dart'; |
39 import 'package:analyzer/src/generated/utilities_general.dart'; | 40 import 'package:analyzer/src/generated/utilities_general.dart'; |
| 41 import 'package:analyzer/src/services/lint.dart'; |
40 import 'package:analyzer/src/task/dart.dart'; | 42 import 'package:analyzer/src/task/dart.dart'; |
41 import 'package:analyzer/src/task/driver.dart'; | 43 import 'package:analyzer/src/task/driver.dart'; |
42 import 'package:analyzer/src/task/html.dart'; | 44 import 'package:analyzer/src/task/html.dart'; |
43 import 'package:analyzer/src/task/options.dart'; | 45 import 'package:analyzer/src/task/options.dart'; |
44 import 'package:analyzer/task/dart.dart'; | 46 import 'package:analyzer/task/dart.dart'; |
45 import 'package:analyzer/task/general.dart'; | 47 import 'package:analyzer/task/general.dart'; |
46 import 'package:analyzer/task/html.dart'; | 48 import 'package:analyzer/task/html.dart'; |
47 import 'package:analyzer/task/model.dart'; | 49 import 'package:analyzer/task/model.dart'; |
48 import 'package:plugin/plugin.dart'; | 50 import 'package:plugin/plugin.dart'; |
49 | 51 |
(...skipping 1027 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1077 | 1079 |
1078 buffer.write('<h3>Work Items</h3>'); | 1080 buffer.write('<h3>Work Items</h3>'); |
1079 buffer.write( | 1081 buffer.write( |
1080 '<p><b>Current:</b> ${_describe(driver.currentWorkOrder?.current)}</
p>'); | 1082 '<p><b>Current:</b> ${_describe(driver.currentWorkOrder?.current)}</
p>'); |
1081 if (workItems != null) { | 1083 if (workItems != null) { |
1082 buffer.writeAll(workItems.reversed | 1084 buffer.writeAll(workItems.reversed |
1083 .map((item) => '<p>${_describe(item)}</p>') | 1085 .map((item) => '<p>${_describe(item)}</p>') |
1084 ?.toList()); | 1086 ?.toList()); |
1085 } | 1087 } |
1086 | 1088 |
| 1089 buffer.write('<h3>Configuration</h3>'); |
| 1090 |
| 1091 AnalysisOptionsImpl options = context.analysisOptions; |
| 1092 buffer.write('<p><b>Options</b></p>'); |
| 1093 buffer.write('<p>'); |
| 1094 _writeOption( |
| 1095 buffer, 'Analyze functon bodies', options.analyzeFunctionBodies); |
| 1096 _writeOption(buffer, 'Cache size', options.cacheSize); |
| 1097 _writeOption( |
| 1098 buffer, 'Enable generic methods', options.enableGenericMethods); |
| 1099 _writeOption(buffer, 'Enable strict call checks', |
| 1100 options.enableStrictCallChecks); |
| 1101 _writeOption(buffer, 'Enable super mixins', options.enableSuperMixins); |
| 1102 _writeOption(buffer, 'Generate dart2js hints', options.dart2jsHint); |
| 1103 _writeOption(buffer, 'Generate errors in implicit files', |
| 1104 options.generateImplicitErrors); |
| 1105 _writeOption( |
| 1106 buffer, 'Generate errors in SDK files', options.generateSdkErrors); |
| 1107 _writeOption(buffer, 'Generate hints', options.hint); |
| 1108 _writeOption(buffer, 'Incremental resolution', options.incremental); |
| 1109 _writeOption(buffer, 'Incremental resolution with API changes', |
| 1110 options.incrementalApi); |
| 1111 _writeOption(buffer, 'Preserve comments', options.preserveComments); |
| 1112 _writeOption(buffer, 'Strong mode', options.strongMode); |
| 1113 _writeOption(buffer, 'Strong mode hints', options.strongModeHints, |
| 1114 last: true); |
| 1115 buffer.write('</p>'); |
| 1116 |
| 1117 List<Linter> lints = context.getConfigurationData(CONFIGURED_LINTS_KEY); |
| 1118 buffer.write('<p><b>Lints</b></p>'); |
| 1119 if (lints.isEmpty) { |
| 1120 buffer.write('<p><none></p>'); |
| 1121 } else { |
| 1122 for (Linter lint in lints) { |
| 1123 buffer.write('<p> ${lint.runtimeType}</p>'); |
| 1124 } |
| 1125 } |
| 1126 |
| 1127 List<ErrorFilter> errorFilters = |
| 1128 context.getConfigurationData(CONFIGURED_ERROR_FILTERS); |
| 1129 int filterCount = errorFilters?.length ?? 0; |
| 1130 buffer.write('<p><b>Error Filter count</b>: $filterCount</p>'); |
| 1131 |
1087 _writeFiles(buffer, 'Priority Files', priorityNames); | 1132 _writeFiles(buffer, 'Priority Files', priorityNames); |
1088 _writeFiles(buffer, 'Explicitly Analyzed Files', explicitNames); | 1133 _writeFiles(buffer, 'Explicitly Analyzed Files', explicitNames); |
1089 _writeFiles(buffer, 'Implicitly Analyzed Files', implicitNames); | 1134 _writeFiles(buffer, 'Implicitly Analyzed Files', implicitNames); |
1090 | 1135 |
1091 buffer.write('<h3>Exceptions</h3>'); | 1136 buffer.write('<h3>Exceptions</h3>'); |
1092 if (exceptions.isEmpty) { | 1137 if (exceptions.isEmpty) { |
1093 buffer.write('<p>None</p>'); | 1138 buffer.write('<p>None</p>'); |
1094 } else { | 1139 } else { |
1095 exceptions.forEach((CaughtException exception) { | 1140 exceptions.forEach((CaughtException exception) { |
1096 _writeException(buffer, exception); | 1141 _writeException(buffer, exception); |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1264 } | 1309 } |
1265 | 1310 |
1266 /** | 1311 /** |
1267 * Return a response indicating the status of the analysis server. | 1312 * Return a response indicating the status of the analysis server. |
1268 */ | 1313 */ |
1269 void _returnServerStatus(HttpRequest request) { | 1314 void _returnServerStatus(HttpRequest request) { |
1270 _writeResponse(request, (StringBuffer buffer) { | 1315 _writeResponse(request, (StringBuffer buffer) { |
1271 _writePage(buffer, 'Analysis Server - Status', [], (StringBuffer buffer) { | 1316 _writePage(buffer, 'Analysis Server - Status', [], (StringBuffer buffer) { |
1272 if (_writeServerStatus(buffer)) { | 1317 if (_writeServerStatus(buffer)) { |
1273 _writeAnalysisStatus(buffer); | 1318 _writeAnalysisStatus(buffer); |
1274 _writeDiagnosticStatus(buffer); | |
1275 _writeEditStatus(buffer); | 1319 _writeEditStatus(buffer); |
1276 _writeExecutionStatus(buffer); | 1320 _writeExecutionStatus(buffer); |
1277 _writePluginStatus(buffer); | 1321 _writePluginStatus(buffer); |
1278 _writeRecentOutput(buffer); | 1322 _writeRecentOutput(buffer); |
1279 } | 1323 } |
1280 }); | 1324 }); |
1281 }); | 1325 }); |
1282 } | 1326 } |
1283 | 1327 |
1284 /** | 1328 /** |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1363 String key = folder.shortName; | 1407 String key = folder.shortName; |
1364 buffer.write(makeLink(CONTEXT_PATH, {CONTEXT_QUERY_PARAM: folder.path}, | 1408 buffer.write(makeLink(CONTEXT_PATH, {CONTEXT_QUERY_PARAM: folder.path}, |
1365 key, _hasException(folderMap[folder]))); | 1409 key, _hasException(folderMap[folder]))); |
1366 if (!folder.getChild('.packages').exists) { | 1410 if (!folder.getChild('.packages').exists) { |
1367 buffer.write(' <b>[No .packages file]</b>'); | 1411 buffer.write(' <b>[No .packages file]</b>'); |
1368 } | 1412 } |
1369 }); | 1413 }); |
1370 // TODO(brianwilkerson) Add items for the SDK contexts (currently only one
). | 1414 // TODO(brianwilkerson) Add items for the SDK contexts (currently only one
). |
1371 buffer.write('</p>'); | 1415 buffer.write('</p>'); |
1372 | 1416 |
1373 buffer.write('<p><b>Options</b></p>'); | |
1374 buffer.write('<p>'); | |
1375 _writeOption( | |
1376 buffer, 'Analyze functon bodies', options.analyzeFunctionBodies); | |
1377 _writeOption(buffer, 'Cache size', options.cacheSize); | |
1378 _writeOption( | |
1379 buffer, 'Enable strict call checks', options.enableStrictCallChecks); | |
1380 _writeOption(buffer, 'Enable super mixins', options.enableSuperMixins); | |
1381 _writeOption(buffer, 'Generate hints', options.hint); | |
1382 _writeOption(buffer, 'Generate dart2js hints', options.dart2jsHint); | |
1383 _writeOption(buffer, 'Generate errors in implicit files', | |
1384 options.generateImplicitErrors); | |
1385 _writeOption( | |
1386 buffer, 'Generate errors in SDK files', options.generateSdkErrors); | |
1387 _writeOption(buffer, 'Incremental resolution', options.incremental); | |
1388 _writeOption(buffer, 'Incremental resolution with API changes', | |
1389 options.incrementalApi); | |
1390 _writeOption(buffer, 'Preserve comments', options.preserveComments, | |
1391 last: true); | |
1392 buffer.write('</p>'); | |
1393 int freq = AnalysisServer.performOperationDelayFreqency; | 1417 int freq = AnalysisServer.performOperationDelayFreqency; |
1394 String delay = freq > 0 ? '1 ms every $freq ms' : 'off'; | 1418 String delay = freq > 0 ? '1 ms every $freq ms' : 'off'; |
1395 buffer.write('<p><b>perform operation delay:</b> $delay</p>'); | 1419 buffer.write('<p><b>perform operation delay:</b> $delay</p>'); |
1396 | 1420 |
1397 buffer.write('<p><b>Performance Data</b></p>'); | 1421 buffer.write('<p><b>Performance Data</b></p>'); |
1398 buffer.write('<p>'); | 1422 buffer.write('<p>'); |
1399 buffer.write(makeLink(ANALYSIS_PERFORMANCE_PATH, {}, 'Task data')); | 1423 buffer.write(makeLink(ANALYSIS_PERFORMANCE_PATH, {}, 'Task data')); |
1400 buffer.write('</p>'); | 1424 buffer.write('</p>'); |
1401 }, (StringBuffer buffer) { | 1425 }, (StringBuffer buffer) { |
1402 _writeSubscriptionMap( | 1426 _writeSubscriptionMap( |
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2044 */ | 2068 */ |
2045 static String makeLink( | 2069 static String makeLink( |
2046 String path, Map<String, String> params, String innerHtml, | 2070 String path, Map<String, String> params, String innerHtml, |
2047 [bool hasError = false]) { | 2071 [bool hasError = false]) { |
2048 Uri uri = new Uri(path: path, queryParameters: params); | 2072 Uri uri = new Uri(path: path, queryParameters: params); |
2049 String href = HTML_ESCAPE.convert(uri.toString()); | 2073 String href = HTML_ESCAPE.convert(uri.toString()); |
2050 String classAttribute = hasError ? ' class="error"' : ''; | 2074 String classAttribute = hasError ? ' class="error"' : ''; |
2051 return '<a href="$href"$classAttribute>$innerHtml</a>'; | 2075 return '<a href="$href"$classAttribute>$innerHtml</a>'; |
2052 } | 2076 } |
2053 } | 2077 } |
OLD | NEW |