| Index: pkg/analysis_server/lib/src/computer/computer_highlights.dart
|
| diff --git a/pkg/analysis_server/lib/src/computer/computer_highlights.dart b/pkg/analysis_server/lib/src/computer/computer_highlights.dart
|
| index 20f618fcf397e28466b8cf3dbedd170f24b2752b..7e9eed87be263ea65888e4d243b3a6f6f3941928 100644
|
| --- a/pkg/analysis_server/lib/src/computer/computer_highlights.dart
|
| +++ b/pkg/analysis_server/lib/src/computer/computer_highlights.dart
|
| @@ -118,7 +118,16 @@ class DartUnitHighlightsComputer {
|
| if (element is! ClassElement) {
|
| return false;
|
| }
|
| - return _addRegion_node(node, HighlightRegionType.CLASS);
|
| + ClassElement classElement = element;
|
| + // prepare type
|
| + HighlightRegionType type;
|
| + if (classElement.isEnum) {
|
| + type = HighlightRegionType.ENUM;
|
| + } else {
|
| + type = HighlightRegionType.CLASS;
|
| + }
|
| + // add region
|
| + return _addRegion_node(node, type);
|
| }
|
|
|
| bool _addIdentifierRegion_constructor(SimpleIdentifier node) {
|
| @@ -156,15 +165,23 @@ class DartUnitHighlightsComputer {
|
| if (element is PropertyAccessorElement) {
|
| element = (element as PropertyAccessorElement).variable;
|
| }
|
| + // prepare type
|
| + HighlightRegionType type;
|
| if (element is FieldElement) {
|
| - if ((element as FieldElement).isStatic) {
|
| - return _addRegion_node(node, HighlightRegionType.FIELD_STATIC);
|
| + Element enclosingElement = element.enclosingElement;
|
| + if (enclosingElement is ClassElement && enclosingElement.isEnum) {
|
| + type = HighlightRegionType.ENUM_CONSTANT;
|
| + } else if ((element as FieldElement).isStatic) {
|
| + type = HighlightRegionType.FIELD_STATIC;
|
| } else {
|
| - return _addRegion_node(node, HighlightRegionType.FIELD);
|
| + type = HighlightRegionType.FIELD;
|
| }
|
| + } else if (element is TopLevelVariableElement) {
|
| + type = HighlightRegionType.TOP_LEVEL_VARIABLE;
|
| }
|
| - if (element is TopLevelVariableElement) {
|
| - return _addRegion_node(node, HighlightRegionType.TOP_LEVEL_VARIABLE);
|
| + // add region
|
| + if (type != null) {
|
| + return _addRegion_node(node, type);
|
| }
|
| return false;
|
| }
|
| @@ -421,6 +438,12 @@ class _DartUnitHighlightsComputerVisitor extends RecursiveAstVisitor<Object> {
|
| }
|
|
|
| @override
|
| + Object visitEnumDeclaration(EnumDeclaration node) {
|
| + computer._addRegion_token(node.keyword, HighlightRegionType.KEYWORD);
|
| + return super.visitEnumDeclaration(node);
|
| + }
|
| +
|
| + @override
|
| Object visitExportDirective(ExportDirective node) {
|
| computer._addRegion_node(node, HighlightRegionType.DIRECTIVE);
|
| computer._addRegion_token(node.keyword, HighlightRegionType.BUILT_IN);
|
|
|