Chromium Code Reviews| Index: pkg/analysis_server/lib/src/status/get_handler.dart |
| diff --git a/pkg/analysis_server/lib/src/status/get_handler.dart b/pkg/analysis_server/lib/src/status/get_handler.dart |
| index 49727f3588255ab747e0861b3f0fb60ddb8da65f..fd245b42846758f5f50d4d0acc67579a7d9f0d85 100644 |
| --- a/pkg/analysis_server/lib/src/status/get_handler.dart |
| +++ b/pkg/analysis_server/lib/src/status/get_handler.dart |
| @@ -30,6 +30,7 @@ import 'package:analyzer/src/generated/element.dart'; |
| import 'package:analyzer/src/generated/engine.dart' |
| hide AnalysisCache, AnalysisContextImpl, AnalysisTask; |
| import 'package:analyzer/src/generated/java_engine.dart'; |
| +import 'package:analyzer/src/generated/resolver.dart'; |
| import 'package:analyzer/src/generated/source.dart'; |
| import 'package:analyzer/src/generated/utilities_collection.dart'; |
| import 'package:analyzer/src/generated/utilities_general.dart'; |
| @@ -578,22 +579,27 @@ class GetHandler { |
| buffer.write('<p>Not found.</p>'); |
| return; |
| } |
| - CacheEntry entry = context.analysisCache.get(source); |
| - if (entry == null) { |
| - buffer.write('<p>Not found.</p>'); |
| - return; |
| - } |
| - CompilationUnit ast = _getAnyAst(entry); |
| - if (ast == null) { |
| - buffer.write('<p>null</p>'); |
| - return; |
| - } |
| - AstWriter writer = new AstWriter(buffer); |
| - ast.accept(writer); |
| - if (writer.exceptions.isNotEmpty) { |
| - buffer.write('<h3>Exceptions while creating page</h3>'); |
| - for (CaughtException exception in writer.exceptions) { |
| - _writeException(buffer, exception); |
| + List<Source> libraries = context.getLibrariesContaining(source); |
| + for (Source library in libraries) { |
| + AnalysisTarget target = new LibrarySpecificUnit(library, source); |
| + CacheEntry entry = context.analysisCache.get(target); |
| + buffer.write('<b>$target</b><br>'); |
| + if (entry == null) { |
| + buffer.write('<p>Not found.</p>'); |
| + return; |
|
Brian Wilkerson
2015/10/08 04:12:31
I think we want to "continue" rather than "return"
|
| + } |
| + CompilationUnit ast = _getAnyAst(entry); |
| + if (ast == null) { |
| + buffer.write('<p>null</p>'); |
| + return; |
| + } |
| + AstWriter writer = new AstWriter(buffer); |
| + ast.accept(writer); |
| + if (writer.exceptions.isNotEmpty) { |
| + buffer.write('<h3>Exceptions while creating page</h3>'); |
| + for (CaughtException exception in writer.exceptions) { |
| + _writeException(buffer, exception); |
| + } |
| } |
| } |
| }); |
| @@ -1831,6 +1837,53 @@ class GetHandler { |
| String link = |
| makeLink(ELEMENT_PATH, linkParameters, value.runtimeType.toString()); |
| buffer.write('<i>$link</i>'); |
| + } else if (value is UsedLocalElements) { |
| + buffer.write('<ul>'); |
| + { |
| + HashSet<Element> elements = value.elements; |
|
Brian Wilkerson
2015/10/08 04:12:31
Is it worth sorting the list?
|
| + buffer.write('List "elements" containing ${elements.length} entries'); |
| + buffer.write('<ul>'); |
| + for (Element element in elements) { |
| + buffer.write('<li>'); |
| + buffer.write('<i>${element.runtimeType}</i> $element'); |
| + buffer.write('</li>'); |
| + } |
| + buffer.write('</ul>'); |
| + } |
| + { |
| + List<String> members = value.members.toList(); |
| + members.sort((String a, String b) { |
| + a = a.toLowerCase(); |
| + b = b.toLowerCase(); |
| + return a.compareTo(b); |
| + }); |
| + buffer.write('List "members" containing ${members.length} entries'); |
| + buffer.write('<ul>'); |
| + for (String member in members) { |
| + buffer.write('<li>'); |
| + buffer.write(member); |
| + buffer.write('</li>'); |
| + } |
| + buffer.write('</ul>'); |
| + } |
| + { |
| + List<String> readMembers = value.readMembers.toList(); |
|
Brian Wilkerson
2015/10/08 04:12:31
Duplicated code. Consider creating a method to wri
|
| + readMembers.sort((String a, String b) { |
| + a = a.toLowerCase(); |
|
Brian Wilkerson
2015/10/08 04:12:31
Unless the "toLowerCase" is important, you could j
|
| + b = b.toLowerCase(); |
| + return a.compareTo(b); |
| + }); |
| + buffer.write( |
| + 'List "readMembers" containing ${readMembers.length} entries'); |
| + buffer.write('<ul>'); |
| + for (String readMember in readMembers) { |
| + buffer.write('<li>'); |
| + buffer.write(readMember); |
| + buffer.write('</li>'); |
| + } |
| + buffer.write('</ul>'); |
| + } |
| + buffer.write('</ul>'); |
| } else { |
| buffer.write(HTML_ESCAPE.convert(value.toString())); |
| buffer.write(' <i>(${value.runtimeType.toString()})</i>'); |