mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 19:21:30 +00:00
[analysis_server] Add syntax highlights for error/stackTrace in catch clauses
Fixes https://github.com/Dart-Code/Dart-Code/issues/4320. Change-Id: Iad269d0f5389d548a01717fbd0facd74d31acf50 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278346 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
79be4f965a
commit
792aedec74
|
@ -657,6 +657,18 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor<void> {
|
|||
semanticTokenModifiers: {CustomSemanticTokenModifiers.control});
|
||||
computer._addRegion_token(node.onKeyword, HighlightRegionType.BUILT_IN,
|
||||
semanticTokenModifiers: {CustomSemanticTokenModifiers.control});
|
||||
|
||||
var exceptionParameter = node.exceptionParameter;
|
||||
if (exceptionParameter != null) {
|
||||
computer._addRegion_token(exceptionParameter.name,
|
||||
HighlightRegionType.LOCAL_VARIABLE_DECLARATION);
|
||||
}
|
||||
var stackTraceParameter = node.stackTraceParameter;
|
||||
if (stackTraceParameter != null) {
|
||||
computer._addRegion_token(stackTraceParameter.name,
|
||||
HighlightRegionType.LOCAL_VARIABLE_DECLARATION);
|
||||
}
|
||||
|
||||
super.visitCatchClause(node);
|
||||
}
|
||||
|
||||
|
|
|
@ -177,4 +177,32 @@ class B {}
|
|||
check(HighlightRegionType.BUILT_IN, ['implements', 'mixin', 'on']);
|
||||
check(HighlightRegionType.KEYWORD, ['class']);
|
||||
}
|
||||
|
||||
Future<void> test_highlights_tryCatch() async {
|
||||
var pathname = sourcePath('test.dart');
|
||||
var text = r'''
|
||||
void f() {
|
||||
try {
|
||||
} on ArgumentError catch (error1, stackTrace1) {
|
||||
} on UnimplementedError catch (error2, stackTrace2) {
|
||||
} on IndexError catch (error2) {
|
||||
} catch (error3, stackTrace3) {
|
||||
}
|
||||
}
|
||||
''';
|
||||
await computeHighlights(pathname, text);
|
||||
|
||||
check(HighlightRegionType.BUILT_IN, ['on']);
|
||||
check(HighlightRegionType.KEYWORD, ['void', 'try', 'catch']);
|
||||
check(HighlightRegionType.CLASS,
|
||||
['ArgumentError', 'UnimplementedError', 'IndexError']);
|
||||
check(HighlightRegionType.LOCAL_VARIABLE_DECLARATION, [
|
||||
'error1',
|
||||
'stackTrace1',
|
||||
'error2',
|
||||
'stackTrace2',
|
||||
'error3',
|
||||
'stackTrace3'
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue