diff --git a/pkg/analysis_server/lib/src/computer/computer_highlights.dart b/pkg/analysis_server/lib/src/computer/computer_highlights.dart index e1fd9083201..ebfc57f6b5a 100644 --- a/pkg/analysis_server/lib/src/computer/computer_highlights.dart +++ b/pkg/analysis_server/lib/src/computer/computer_highlights.dart @@ -1194,6 +1194,13 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor { @override void visitNamedType(NamedType node) { + if (node.importPrefix case final importPrefix?) { + computer._addRegion_token( + importPrefix.name, + HighlightRegionType.IMPORT_PREFIX, + ); + } + var type = node.type; if (type != null) { var isDynamic = type is DynamicType && node.name2.lexeme == 'dynamic'; diff --git a/pkg/analysis_server/test/analysis/notification_highlights2_test.dart b/pkg/analysis_server/test/analysis/notification_highlights2_test.dart index 93de9c54ee5..bf8ec92019e 100644 --- a/pkg/analysis_server/test/analysis/notification_highlights2_test.dart +++ b/pkg/analysis_server/test/analysis/notification_highlights2_test.dart @@ -1256,6 +1256,28 @@ void f() { assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'ma.max'); } + Future test_IMPORT_PREFIX_methodInvocation() async { + addTestFile(''' +import 'dart:math' as ma; +void f() { + ma.max(1, 2); +} +'''); + await prepareHighlights(); + assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'ma;'); + assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'ma.max'); + } + + Future test_IMPORT_PREFIX_namedType() async { + addTestFile(''' +import 'dart:math' as math; +void f(math.Random r) {} +'''); + await prepareHighlights(); + assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'math;'); + assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'math.Random'); + } + Future test_INSTANCE_FIELD() async { addTestFile(''' class A {