Enum handling for dart_fmt.

R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org//901743002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43494 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/pkg/analyzer/lib/src/services/formatter_impl.dart b/pkg/analyzer/lib/src/services/formatter_impl.dart
index dcfb34a..ff1e30a 100644
--- a/pkg/analyzer/lib/src/services/formatter_impl.dart
+++ b/pkg/analyzer/lib/src/services/formatter_impl.dart
@@ -770,6 +770,24 @@
     }
   }
 
+  visitEnumConstantDeclaration(EnumConstantDeclaration node){
+    visit(node.name);
+  }
+
+  visitEnumDeclaration(EnumDeclaration node){
+    visitMemberMetadata(node.metadata);
+    token(node.keyword);
+    space();
+    visit(node.name);
+    space();
+    token(node.leftBracket);
+    newlines();
+    indent();
+    visitCommaSeparatedNodes(node.constants);
+    newlines();
+    token(node.rightBracket, precededBy: unindent);
+  }
+
   visitExportDirective(ExportDirective node) {
     visitDirectiveMetadata(node.metadata);
     token(node.keyword);
@@ -1841,14 +1859,4 @@
   }
 
   String toString() => writer.toString();
-
-  @override
-  visitEnumConstantDeclaration(EnumConstantDeclaration node) {
-    // TODO: implement visitEnumConstantDeclaration
-  }
-
-  @override
-  visitEnumDeclaration(EnumDeclaration node) {
-    // TODO: implement visitEnumDeclaration
-  }
 }
diff --git a/pkg/analyzer/test/services/data/cu_tests.data b/pkg/analyzer/test/services/data/cu_tests.data
index 6f4e4d1..9f9e803 100644
--- a/pkg/analyzer/test/services/data/cu_tests.data
+++ b/pkg/analyzer/test/services/data/cu_tests.data
@@ -317,3 +317,9 @@
 main()  async  => 0;
 <<<
 main() async => 0;
+>>>
+enum Foo { BAR, BAZ }
+<<<
+enum Foo {
+  BAR, BAZ
+}