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

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

Issue 1310263003: Reformat code to minimize churn (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 3 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
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.src.get_handler; 5 library analysis_server.src.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 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 /** 167 /**
168 * Return the active [CompletionDomainHandler] 168 * Return the active [CompletionDomainHandler]
169 * or `null` if either analysis server is not running 169 * or `null` if either analysis server is not running
170 * or there is no completion domain handler. 170 * or there is no completion domain handler.
171 */ 171 */
172 CompletionDomainHandler get _completionDomainHandler { 172 CompletionDomainHandler get _completionDomainHandler {
173 AnalysisServer analysisServer = _server.analysisServer; 173 AnalysisServer analysisServer = _server.analysisServer;
174 if (analysisServer == null) { 174 if (analysisServer == null) {
175 return null; 175 return null;
176 } 176 }
177 return analysisServer.handlers.firstWhere( 177 return analysisServer.handlers
178 (h) => h is CompletionDomainHandler, orElse: () => null); 178 .firstWhere((h) => h is CompletionDomainHandler, orElse: () => null);
179 } 179 }
180 180
181 /** 181 /**
182 * Handle a GET request received by the HTTP server. 182 * Handle a GET request received by the HTTP server.
183 */ 183 */
184 void handleGetRequest(HttpRequest request) { 184 void handleGetRequest(HttpRequest request) {
185 String path = request.uri.path; 185 String path = request.uri.path;
186 if (path == STATUS_PATH) { 186 if (path == STATUS_PATH) {
187 _returnServerStatus(request); 187 _returnServerStatus(request);
188 } else if (path == ANALYSIS_PERFORMANCE_PATH) { 188 } else if (path == ANALYSIS_PERFORMANCE_PATH) {
(...skipping 22 matching lines...) Expand all
211 _returnUnknownRequest(request); 211 _returnUnknownRequest(request);
212 } 212 }
213 } 213 }
214 214
215 /** 215 /**
216 * Return the folder being managed by the given [analysisServer] that matches 216 * Return the folder being managed by the given [analysisServer] that matches
217 * the given [contextFilter], or `null` if there is none. 217 * the given [contextFilter], or `null` if there is none.
218 */ 218 */
219 Folder _findFolder(AnalysisServer analysisServer, String contextFilter) { 219 Folder _findFolder(AnalysisServer analysisServer, String contextFilter) {
220 return analysisServer.folderMap.keys.firstWhere( 220 return analysisServer.folderMap.keys.firstWhere(
221 (Folder folder) => folder.path == contextFilter, orElse: () => null); 221 (Folder folder) => folder.path == contextFilter,
222 orElse: () => null);
222 } 223 }
223 224
224 /** 225 /**
225 * Return `true` if the given analysis [context] has at least one entry with 226 * Return `true` if the given analysis [context] has at least one entry with
226 * an exception. 227 * an exception.
227 */ 228 */
228 bool _hasException(AnalysisContextImpl context) { 229 bool _hasException(AnalysisContextImpl context) {
229 bool hasException = false; 230 bool hasException = false;
230 context.visitCacheItems((Source source, SourceEntry sourceEntry, 231 context.visitCacheItems((Source source, SourceEntry sourceEntry,
231 DataDescriptor rowDesc, CacheState state) { 232 DataDescriptor rowDesc, CacheState state) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 buffer.write('</table>'); 293 buffer.write('</table>');
293 } 294 }
294 295
295 // 296 //
296 // Write new task model timing information. 297 // Write new task model timing information.
297 // 298 //
298 if (AnalysisEngine.instance.useTaskModel) { 299 if (AnalysisEngine.instance.useTaskModel) {
299 buffer.write('<p><b>Task performace data</b></p>'); 300 buffer.write('<p><b>Task performace data</b></p>');
300 buffer.write( 301 buffer.write(
301 '<table style="border-collapse: separate; border-spacing: 10px 5px ;">'); 302 '<table style="border-collapse: separate; border-spacing: 10px 5px ;">');
302 _writeRow(buffer, [ 303 _writeRow(
303 'Task Name', 304 buffer,
304 'Count', 305 [
305 'Total Time (in ms)', 306 'Task Name',
306 'Average Time (in ms)' 307 'Count',
307 ], header: true); 308 'Total Time (in ms)',
309 'Average Time (in ms)'
310 ],
311 header: true);
308 312
309 Map<Type, int> countMap = newTask.AnalysisTask.countMap; 313 Map<Type, int> countMap = newTask.AnalysisTask.countMap;
310 Map<Type, Stopwatch> stopwatchMap = newTask.AnalysisTask.stopwatchMap; 314 Map<Type, Stopwatch> stopwatchMap = newTask.AnalysisTask.stopwatchMap;
311 List<Type> taskClasses = stopwatchMap.keys.toList(); 315 List<Type> taskClasses = stopwatchMap.keys.toList();
312 taskClasses.sort((Type first, Type second) => 316 taskClasses.sort((Type first, Type second) =>
313 first.toString().compareTo(second.toString())); 317 first.toString().compareTo(second.toString()));
314 int totalTime = 0; 318 int totalTime = 0;
315 taskClasses.forEach((Type taskClass) { 319 taskClasses.forEach((Type taskClass) {
316 int count = countMap[taskClass]; 320 int count = countMap[taskClass];
317 if (count == null) { 321 if (count == null) {
318 count = 0; 322 count = 0;
319 } 323 }
320 int taskTime = stopwatchMap[taskClass].elapsedMilliseconds; 324 int taskTime = stopwatchMap[taskClass].elapsedMilliseconds;
321 totalTime += taskTime; 325 totalTime += taskTime;
322 _writeRow(buffer, [ 326 _writeRow(buffer, [
323 taskClass.toString(), 327 taskClass.toString(),
324 count, 328 count,
325 taskTime, 329 taskTime,
326 count <= 0 ? '-' : (taskTime / count).toStringAsFixed(3) 330 count <= 0 ? '-' : (taskTime / count).toStringAsFixed(3)
327 ], classes: [null, "right", "right", "right"]); 331 ], classes: [
332 null,
333 "right",
334 "right",
335 "right"
336 ]);
328 }); 337 });
329 _writeRow(buffer, ['Total', '-', totalTime, '-'], 338 _writeRow(buffer, ['Total', '-', totalTime, '-'],
330 classes: [null, "right", "right", "right"]); 339 classes: [null, "right", "right", "right"]);
331 buffer.write('</table>'); 340 buffer.write('</table>');
332 } 341 }
333 342
334 // 343 //
335 // Write old task model transition information. 344 // Write old task model transition information.
336 // 345 //
337 { 346 {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 } 394 }
386 String sourceUri = request.uri.queryParameters[SOURCE_QUERY_PARAM]; 395 String sourceUri = request.uri.queryParameters[SOURCE_QUERY_PARAM];
387 if (sourceUri == null) { 396 if (sourceUri == null) {
388 return _returnFailure( 397 return _returnFailure(
389 request, 'Query parameter $SOURCE_QUERY_PARAM required'); 398 request, 'Query parameter $SOURCE_QUERY_PARAM required');
390 } 399 }
391 400
392 AnalysisContextImpl context = analysisServer.folderMap[folder]; 401 AnalysisContextImpl context = analysisServer.folderMap[folder];
393 402
394 _writeResponse(request, (StringBuffer buffer) { 403 _writeResponse(request, (StringBuffer buffer) {
395 _writePage(buffer, 'Analysis Server - AST Structure', [ 404 _writePage(buffer, 'Analysis Server - AST Structure',
396 'Context: $contextFilter', 405 ['Context: $contextFilter', 'File: $sourceUri'], (HttpResponse) {
397 'File: $sourceUri'
398 ], (HttpResponse) {
399 Source source = context.sourceFactory.forUri(sourceUri); 406 Source source = context.sourceFactory.forUri(sourceUri);
400 if (source == null) { 407 if (source == null) {
401 buffer.write('<p>Not found.</p>'); 408 buffer.write('<p>Not found.</p>');
402 return; 409 return;
403 } 410 }
404 SourceEntry entry = context.getReadableSourceEntryOrNull(source); 411 SourceEntry entry = context.getReadableSourceEntryOrNull(source);
405 if (entry == null) { 412 if (entry == null) {
406 buffer.write('<p>Not found.</p>'); 413 buffer.write('<p>Not found.</p>');
407 return; 414 return;
408 } 415 }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 allContexts.add(folder); 465 allContexts.add(folder);
459 entryMap[folder] = entry; 466 entryMap[folder] = entry;
460 } 467 }
461 } 468 }
462 }); 469 });
463 allContexts.sort((Folder firstFolder, Folder secondFolder) => 470 allContexts.sort((Folder firstFolder, Folder secondFolder) =>
464 firstFolder.path.compareTo(secondFolder.path)); 471 firstFolder.path.compareTo(secondFolder.path));
465 AnalysisContextImpl context = analysisServer.folderMap[folder]; 472 AnalysisContextImpl context = analysisServer.folderMap[folder];
466 473
467 _writeResponse(request, (StringBuffer buffer) { 474 _writeResponse(request, (StringBuffer buffer) {
468 _writePage(buffer, 'Analysis Server - Cache Entry', [ 475 _writePage(buffer, 'Analysis Server - Cache Entry',
469 'Context: $contextFilter', 476 ['Context: $contextFilter', 'File: $sourceUri'], (HttpResponse) {
470 'File: $sourceUri'
471 ], (HttpResponse) {
472 buffer.write('<h3>Analyzing Contexts</h3><p>'); 477 buffer.write('<h3>Analyzing Contexts</h3><p>');
473 bool first = true; 478 bool first = true;
474 allContexts.forEach((Folder folder) { 479 allContexts.forEach((Folder folder) {
475 if (first) { 480 if (first) {
476 first = false; 481 first = false;
477 } else { 482 } else {
478 buffer.write('<br>'); 483 buffer.write('<br>');
479 } 484 }
480 AnalysisContextImpl analyzingContext = 485 AnalysisContextImpl analyzingContext =
481 analysisServer.folderMap[folder]; 486 analysisServer.folderMap[folder];
482 if (analyzingContext == context) { 487 if (analyzingContext == context) {
483 buffer.write(folder.path); 488 buffer.write(folder.path);
484 } else { 489 } else {
485 buffer.write(makeLink(CACHE_ENTRY_PATH, { 490 buffer.write(makeLink(
486 CONTEXT_QUERY_PARAM: folder.path, 491 CACHE_ENTRY_PATH,
487 SOURCE_QUERY_PARAM: sourceUri 492 {
488 }, HTML_ESCAPE.convert(folder.path))); 493 CONTEXT_QUERY_PARAM: folder.path,
494 SOURCE_QUERY_PARAM: sourceUri
495 },
496 HTML_ESCAPE.convert(folder.path)));
489 } 497 }
490 if (entryMap[folder].explicitlyAdded) { 498 if (entryMap[folder].explicitlyAdded) {
491 buffer.write(' (explicit)'); 499 buffer.write(' (explicit)');
492 } else { 500 } else {
493 buffer.write(' (implicit)'); 501 buffer.write(' (implicit)');
494 } 502 }
495 }); 503 });
496 buffer.write('</p>'); 504 buffer.write('</p>');
497 505
498 SourceEntry entry = entryMap[folder]; 506 SourceEntry entry = entryMap[folder];
499 if (entry == null) { 507 if (entry == null) {
500 buffer.write('<p>Not being analyzed in this context.</p>'); 508 buffer.write('<p>Not being analyzed in this context.</p>');
501 return; 509 return;
502 } 510 }
503 Map<String, String> linkParameters = <String, String>{ 511 Map<String, String> linkParameters = <String, String>{
504 CONTEXT_QUERY_PARAM: folder.path, 512 CONTEXT_QUERY_PARAM: folder.path,
505 SOURCE_QUERY_PARAM: sourceUri 513 SOURCE_QUERY_PARAM: sourceUri
506 }; 514 };
507 515
508 buffer.write('<h3>Library Independent</h3>'); 516 buffer.write('<h3>Library Independent</h3>');
509 _writeDescriptorTable(buffer, entry.descriptors, entry.getState, 517 _writeDescriptorTable(buffer, entry.descriptors, entry.getState,
510 entry.getValue, linkParameters); 518 entry.getValue, linkParameters);
511 if (entry is DartEntry) { 519 if (entry is DartEntry) {
512 for (Source librarySource in entry.containingLibraries) { 520 for (Source librarySource in entry.containingLibraries) {
513 String libraryName = HTML_ESCAPE.convert(librarySource.fullName); 521 String libraryName = HTML_ESCAPE.convert(librarySource.fullName);
514 buffer.write('<h3>In library $libraryName:</h3>'); 522 buffer.write('<h3>In library $libraryName:</h3>');
515 _writeDescriptorTable(buffer, entry.libraryDescriptors, 523 _writeDescriptorTable(
524 buffer,
525 entry.libraryDescriptors,
516 (DataDescriptor descriptor) => 526 (DataDescriptor descriptor) =>
517 entry.getStateInLibrary(descriptor, librarySource), 527 entry.getStateInLibrary(descriptor, librarySource),
518 (DataDescriptor descriptor) => 528 (DataDescriptor descriptor) =>
519 entry.getValueInLibrary(descriptor, librarySource), 529 entry.getValueInLibrary(descriptor, librarySource),
520 linkParameters); 530 linkParameters);
521 } 531 }
522 } 532 }
523 if (entry.exception != null) { 533 if (entry.exception != null) {
524 buffer.write('<h3>Exception</h3>'); 534 buffer.write('<h3>Exception</h3>');
525 _writeException(buffer, entry.exception); 535 _writeException(buffer, entry.exception);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 } 578 }
569 579
570 Folder folder = _findFolder(analysisServer, contextFilter); 580 Folder folder = _findFolder(analysisServer, contextFilter);
571 AnalysisContextImpl context = analysisServer.folderMap[folder]; 581 AnalysisContextImpl context = analysisServer.folderMap[folder];
572 List<String> links = <String>[]; 582 List<String> links = <String>[];
573 context.visitCacheItems((Source source, SourceEntry dartEntry, 583 context.visitCacheItems((Source source, SourceEntry dartEntry,
574 DataDescriptor rowDesc, CacheState state) { 584 DataDescriptor rowDesc, CacheState state) {
575 if (state != stateFilter || rowDesc.toString() != descriptorFilter) { 585 if (state != stateFilter || rowDesc.toString() != descriptorFilter) {
576 return; 586 return;
577 } 587 }
578 String link = makeLink(CACHE_ENTRY_PATH, { 588 String link = makeLink(
579 CONTEXT_QUERY_PARAM: folder.path, 589 CACHE_ENTRY_PATH,
580 SOURCE_QUERY_PARAM: source.uri.toString() 590 {
581 }, HTML_ESCAPE.convert(source.fullName)); 591 CONTEXT_QUERY_PARAM: folder.path,
592 SOURCE_QUERY_PARAM: source.uri.toString()
593 },
594 HTML_ESCAPE.convert(source.fullName));
582 links.add(link); 595 links.add(link);
583 }); 596 });
584 597
585 _writeResponse(request, (StringBuffer buffer) { 598 _writeResponse(request, (StringBuffer buffer) {
586 _writePage(buffer, 'Analysis Server - Cache Search', [ 599 _writePage(buffer, 'Analysis Server - Cache Search', [
587 'Context: $contextFilter', 600 'Context: $contextFilter',
588 'Descriptor: ${HTML_ESCAPE.convert(descriptorFilter)}', 601 'Descriptor: ${HTML_ESCAPE.convert(descriptorFilter)}',
589 'State: ${HTML_ESCAPE.convert(stateQueryParam)}' 602 'State: ${HTML_ESCAPE.convert(stateQueryParam)}'
590 ], (StringBuffer buffer) { 603 ], (StringBuffer buffer) {
591 buffer.write('<p>${links.length} files found</p>'); 604 buffer.write('<p>${links.length} files found</p>');
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 .map((Source source) => source.fullName) 723 .map((Source source) => source.fullName)
711 .toList(); 724 .toList();
712 context.visitCacheItems((Source source, SourceEntry sourceEntry, 725 context.visitCacheItems((Source source, SourceEntry sourceEntry,
713 DataDescriptor rowDesc, CacheState state) { 726 DataDescriptor rowDesc, CacheState state) {
714 String sourceName = source.fullName; 727 String sourceName = source.fullName;
715 if (!links.containsKey(sourceName)) { 728 if (!links.containsKey(sourceName)) {
716 CaughtException exception = sourceEntry.exception; 729 CaughtException exception = sourceEntry.exception;
717 if (exception != null) { 730 if (exception != null) {
718 exceptions.add(exception); 731 exceptions.add(exception);
719 } 732 }
720 String link = makeLink(CACHE_ENTRY_PATH, { 733 String link = makeLink(
721 CONTEXT_QUERY_PARAM: folder.path, 734 CACHE_ENTRY_PATH,
722 SOURCE_QUERY_PARAM: source.uri.toString() 735 {
723 }, sourceName, exception != null); 736 CONTEXT_QUERY_PARAM: folder.path,
737 SOURCE_QUERY_PARAM: source.uri.toString()
738 },
739 sourceName,
740 exception != null);
724 if (sourceEntry.explicitlyAdded) { 741 if (sourceEntry.explicitlyAdded) {
725 explicitNames.add(sourceName); 742 explicitNames.add(sourceName);
726 } else { 743 } else {
727 implicitNames.add(sourceName); 744 implicitNames.add(sourceName);
728 } 745 }
729 links[sourceName] = link; 746 links[sourceName] = link;
730 } 747 }
731 }); 748 });
732 explicitNames.sort(); 749 explicitNames.sort();
733 implicitNames.sort(); 750 implicitNames.sort();
(...skipping 18 matching lines...) Expand all
752 buffer.write( 769 buffer.write(
753 makeLink(OVERLAY_PATH, {PATH_PARAM: fileName}, 'overlay')); 770 makeLink(OVERLAY_PATH, {PATH_PARAM: fileName}, 'overlay'));
754 } 771 }
755 buffer.write('</td></tr>'); 772 buffer.write('</td></tr>');
756 } 773 }
757 buffer.write('</table>'); 774 buffer.write('</table>');
758 } 775 }
759 } 776 }
760 777
761 _writeResponse(request, (StringBuffer buffer) { 778 _writeResponse(request, (StringBuffer buffer) {
762 _writePage(buffer, 'Analysis Server - Context', 779 _writePage(
763 ['Context: $contextFilter'], (StringBuffer buffer) { 780 buffer, 'Analysis Server - Context', ['Context: $contextFilter'],
781 (StringBuffer buffer) {
764 List headerRowText = ['Context']; 782 List headerRowText = ['Context'];
765 headerRowText.addAll(CacheState.values); 783 headerRowText.addAll(CacheState.values);
766 buffer.write('<h3>Summary</h3>'); 784 buffer.write('<h3>Summary</h3>');
767 buffer.write('<table>'); 785 buffer.write('<table>');
768 _writeRow(buffer, headerRowText, header: true); 786 _writeRow(buffer, headerRowText, header: true);
769 AnalysisContextStatistics statistics = context.statistics; 787 AnalysisContextStatistics statistics = context.statistics;
770 statistics.cacheRows.forEach((AnalysisContextStatistics_CacheRow row) { 788 statistics.cacheRows.forEach((AnalysisContextStatistics_CacheRow row) {
771 List rowText = [row.name]; 789 List rowText = [row.name];
772 for (CacheState state in CacheState.values) { 790 for (CacheState state in CacheState.values) {
773 String text = row.getCount(state).toString(); 791 String text = row.getCount(state).toString();
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
877 } 895 }
878 if (index is LocalIndex) { 896 if (index is LocalIndex) {
879 Map<List<String>, List<InspectLocation>> relations = 897 Map<List<String>, List<InspectLocation>> relations =
880 await index.findElementsByName(name); 898 await index.findElementsByName(name);
881 _writeResponse(request, (StringBuffer buffer) { 899 _writeResponse(request, (StringBuffer buffer) {
882 _writePage(buffer, 'Analysis Server - Index Elements', ['Name: $name'], 900 _writePage(buffer, 'Analysis Server - Index Elements', ['Name: $name'],
883 (StringBuffer buffer) { 901 (StringBuffer buffer) {
884 buffer.write('<table border="1">'); 902 buffer.write('<table border="1">');
885 _writeRow(buffer, ['Element', 'Relationship', 'Location'], 903 _writeRow(buffer, ['Element', 'Relationship', 'Location'],
886 header: true); 904 header: true);
887 relations.forEach((List<String> elementPath, 905 relations.forEach(
888 List<InspectLocation> relations) { 906 (List<String> elementPath, List<InspectLocation> relations) {
889 String elementLocation = elementPath.join(' '); 907 String elementLocation = elementPath.join(' ');
890 relations.forEach((InspectLocation location) { 908 relations.forEach((InspectLocation location) {
891 var relString = location.relationship.identifier; 909 var relString = location.relationship.identifier;
892 var locString = '${location.path} offset=${location.offset} ' 910 var locString = '${location.path} offset=${location.offset} '
893 'length=${location.length} flags=${location.flags}'; 911 'length=${location.length} flags=${location.flags}';
894 _writeRow(buffer, [elementLocation, relString, locString]); 912 _writeRow(buffer, [elementLocation, relString, locString]);
895 }); 913 });
896 }); 914 });
897 buffer.write('</table>'); 915 buffer.write('</table>');
898 }); 916 });
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 buffer.write('<p><b>Analysis Contexts</b></p>'); 1052 buffer.write('<p><b>Analysis Contexts</b></p>');
1035 buffer.write('<p>'); 1053 buffer.write('<p>');
1036 bool first = true; 1054 bool first = true;
1037 folders.forEach((Folder folder) { 1055 folders.forEach((Folder folder) {
1038 if (first) { 1056 if (first) {
1039 first = false; 1057 first = false;
1040 } else { 1058 } else {
1041 buffer.write('<br>'); 1059 buffer.write('<br>');
1042 } 1060 }
1043 String key = folder.shortName; 1061 String key = folder.shortName;
1044 buffer.write(makeLink(CONTEXT_PATH, { 1062 buffer.write(makeLink(CONTEXT_PATH, {CONTEXT_QUERY_PARAM: folder.path},
1045 CONTEXT_QUERY_PARAM: folder.path 1063 key, _hasException(folderMap[folder])));
1046 }, key, _hasException(folderMap[folder])));
1047 }); 1064 });
1048 buffer.write('</p>'); 1065 buffer.write('</p>');
1049 1066
1050 buffer.write('<p><b>Options</b></p>'); 1067 buffer.write('<p><b>Options</b></p>');
1051 buffer.write('<p>'); 1068 buffer.write('<p>');
1052 _writeOption( 1069 _writeOption(
1053 buffer, 'Analyze functon bodies', options.analyzeFunctionBodies); 1070 buffer, 'Analyze functon bodies', options.analyzeFunctionBodies);
1054 _writeOption(buffer, 'Cache size', options.cacheSize); 1071 _writeOption(buffer, 'Cache size', options.cacheSize);
1055 _writeOption( 1072 _writeOption(
1056 buffer, 'Enable strict call checks', options.enableStrictCallChecks); 1073 buffer, 'Enable strict call checks', options.enableStrictCallChecks);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
1123 * Write a table showing summary information for the last several 1140 * Write a table showing summary information for the last several
1124 * completion requests to the given [buffer] object. 1141 * completion requests to the given [buffer] object.
1125 */ 1142 */
1126 void _writeCompletionPerformanceList(StringBuffer buffer) { 1143 void _writeCompletionPerformanceList(StringBuffer buffer) {
1127 CompletionDomainHandler handler = _completionDomainHandler; 1144 CompletionDomainHandler handler = _completionDomainHandler;
1128 buffer.write('<h3>Completion Performance List</h3>'); 1145 buffer.write('<h3>Completion Performance List</h3>');
1129 if (handler == null) { 1146 if (handler == null) {
1130 return; 1147 return;
1131 } 1148 }
1132 buffer.write('<table>'); 1149 buffer.write('<table>');
1133 _writeRow(buffer, [ 1150 _writeRow(
1134 'Start Time', 1151 buffer,
1135 '', 1152 [
1136 'First (ms)', 1153 'Start Time',
1137 '', 1154 '',
1138 'Complete (ms)', 1155 'First (ms)',
1139 '', 1156 '',
1140 '# Notifications', 1157 'Complete (ms)',
1141 '', 1158 '',
1142 '# Suggestions', 1159 '# Notifications',
1143 '', 1160 '',
1144 'Snippet' 1161 '# Suggestions',
1145 ], header: true); 1162 '',
1163 'Snippet'
1164 ],
1165 header: true);
1146 int index = 0; 1166 int index = 0;
1147 for (CompletionPerformance performance in handler.performanceList) { 1167 for (CompletionPerformance performance in handler.performanceList) {
1148 String link = makeLink(COMPLETION_PATH, { 1168 String link = makeLink(COMPLETION_PATH, {'index': '$index'},
1149 'index': '$index' 1169 '${performance.startTimeAndMs}');
1150 }, '${performance.startTimeAndMs}');
1151 _writeRow(buffer, [ 1170 _writeRow(buffer, [
1152 link, 1171 link,
1153 '&nbsp;&nbsp;', 1172 '&nbsp;&nbsp;',
1154 performance.firstNotificationInMilliseconds, 1173 performance.firstNotificationInMilliseconds,
1155 '&nbsp;&nbsp;', 1174 '&nbsp;&nbsp;',
1156 performance.elapsedInMilliseconds, 1175 performance.elapsedInMilliseconds,
1157 '&nbsp;&nbsp;', 1176 '&nbsp;&nbsp;',
1158 performance.notificationCount, 1177 performance.notificationCount,
1159 '&nbsp;&nbsp;', 1178 '&nbsp;&nbsp;',
1160 performance.suggestionCount, 1179 performance.suggestionCount,
(...skipping 21 matching lines...) Expand all
1182 } 1201 }
1183 1202
1184 /** 1203 /**
1185 * Generate a table showing the cache values corresponding to the given 1204 * Generate a table showing the cache values corresponding to the given
1186 * [descriptors], using [getState] to get the cache state corresponding to 1205 * [descriptors], using [getState] to get the cache state corresponding to
1187 * each descriptor, and [getValue] to get the cached value corresponding to 1206 * each descriptor, and [getValue] to get the cached value corresponding to
1188 * each descriptor. Append the resulting HTML to the given [buffer]. The 1207 * each descriptor. Append the resulting HTML to the given [buffer]. The
1189 * [linkParameters] will be used if the value is too large to be displayed on 1208 * [linkParameters] will be used if the value is too large to be displayed on
1190 * the current page and needs to be linked to a separate page. 1209 * the current page and needs to be linked to a separate page.
1191 */ 1210 */
1192 void _writeDescriptorTable(StringBuffer buffer, 1211 void _writeDescriptorTable(
1193 List<DataDescriptor> descriptors, CacheState getState(DataDescriptor), 1212 StringBuffer buffer,
1194 dynamic getValue(DataDescriptor), Map<String, String> linkParameters) { 1213 List<DataDescriptor> descriptors,
1214 CacheState getState(DataDescriptor),
1215 dynamic getValue(DataDescriptor),
1216 Map<String, String> linkParameters) {
1195 buffer.write('<dl>'); 1217 buffer.write('<dl>');
1196 for (DataDescriptor descriptor in descriptors) { 1218 for (DataDescriptor descriptor in descriptors) {
1197 String descriptorName = HTML_ESCAPE.convert(descriptor.toString()); 1219 String descriptorName = HTML_ESCAPE.convert(descriptor.toString());
1198 String descriptorState = 1220 String descriptorState =
1199 HTML_ESCAPE.convert(getState(descriptor).toString()); 1221 HTML_ESCAPE.convert(getState(descriptor).toString());
1200 buffer.write('<dt>$descriptorName ($descriptorState)</dt><dd>'); 1222 buffer.write('<dt>$descriptorName ($descriptorState)</dt><dd>');
1201 try { 1223 try {
1202 _writeValueAsHtml(buffer, getValue(descriptor), linkParameters); 1224 _writeValueAsHtml(buffer, getValue(descriptor), linkParameters);
1203 } catch (exception) { 1225 } catch (exception) {
1204 buffer.write('(${HTML_ESCAPE.convert(exception.toString())})'); 1226 buffer.write('(${HTML_ESCAPE.convert(exception.toString())})');
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
1624 */ 1646 */
1625 static String makeLink( 1647 static String makeLink(
1626 String path, Map<String, String> params, String innerHtml, 1648 String path, Map<String, String> params, String innerHtml,
1627 [bool hasError = false]) { 1649 [bool hasError = false]) {
1628 Uri uri = new Uri(path: path, queryParameters: params); 1650 Uri uri = new Uri(path: path, queryParameters: params);
1629 String href = HTML_ESCAPE.convert(uri.toString()); 1651 String href = HTML_ESCAPE.convert(uri.toString());
1630 String classAttribute = hasError ? ' class="error"' : ''; 1652 String classAttribute = hasError ? ' class="error"' : '';
1631 return '<a href="$href"$classAttribute>$innerHtml</a>'; 1653 return '<a href="$href"$classAttribute>$innerHtml</a>';
1632 } 1654 }
1633 } 1655 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/domain_server.dart ('k') | pkg/analysis_server/lib/src/server/driver.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698