Chromium Code Reviews| Index: pkg/analyzer/lib/src/services/formatter_impl.dart |
| =================================================================== |
| --- pkg/analyzer/lib/src/services/formatter_impl.dart (revision 34893) |
| +++ pkg/analyzer/lib/src/services/formatter_impl.dart (working copy) |
| @@ -530,7 +530,7 @@ |
| visitClassDeclaration(ClassDeclaration node) { |
| preserveLeadingNewlines(); |
| - visitNodes(node.metadata, followedBy: newlines); |
| + visitMemberMetadata(node.metadata); |
| modifier(node.abstractKeyword); |
| token(node.classKeyword); |
| space(); |
| @@ -556,7 +556,7 @@ |
| visitClassTypeAlias(ClassTypeAlias node) { |
| preserveLeadingNewlines(); |
| - visitNodes(node.metadata, followedBy: newlines); |
| + visitMemberMetadata(node.metadata); |
| modifier(node.abstractKeyword); |
| token(node.keyword); |
| space(); |
| @@ -615,7 +615,7 @@ |
| } |
| visitConstructorDeclaration(ConstructorDeclaration node) { |
| - visitNodes(node.metadata, followedBy: newlines); |
| + visitMemberMetadata(node.metadata); |
| modifier(node.externalKeyword); |
| modifier(node.constKeyword); |
| modifier(node.factoryKeyword); |
| @@ -743,7 +743,7 @@ |
| } |
| visitExportDirective(ExportDirective node) { |
| - visitNodes(node.metadata, followedBy: newlines); |
| + visitDirectiveMetadata(node.metadata); |
| token(node.keyword); |
| space(); |
| visit(node.uri); |
| @@ -772,7 +772,7 @@ |
| } |
| visitFieldDeclaration(FieldDeclaration node) { |
| - visitNodes(node.metadata, followedBy: newlines); |
| + visitMemberMetadata(node.metadata); |
| modifier(node.staticKeyword); |
| visit(node.fields); |
| token(node.semicolon); |
| @@ -862,7 +862,7 @@ |
| visitFunctionDeclaration(FunctionDeclaration node) { |
| preserveLeadingNewlines(); |
| - visitNodes(node.metadata, followedBy: newlines); |
| + visitMemberMetadata(node.metadata); |
| modifier(node.externalKeyword); |
| visitNode(node.returnType, followedBy: space); |
| modifier(node.propertyKeyword); |
| @@ -888,7 +888,7 @@ |
| } |
| visitFunctionTypeAlias(FunctionTypeAlias node) { |
| - visitNodes(node.metadata, separatedBy: newlines, followedBy: newlines); |
| + visitMemberMetadata(node.metadata); |
| token(node.keyword); |
| space(); |
| visitNode(node.returnType, followedBy: space); |
| @@ -942,7 +942,7 @@ |
| } |
| visitImportDirective(ImportDirective node) { |
| - visitNodes(node.metadata, followedBy: newlines); |
| + visitDirectiveMetadata(node.metadata); |
| token(node.keyword); |
| nonBreakingSpace(); |
| visit(node.uri); |
| @@ -1011,7 +1011,7 @@ |
| } |
| visitLibraryDirective(LibraryDirective node) { |
| - visitNodes(node.metadata, followedBy: newlines); |
| + visitDirectiveMetadata(node.metadata); |
| token(node.keyword); |
| space(); |
| visit(node.name); |
| @@ -1055,7 +1055,7 @@ |
| } |
| visitMethodDeclaration(MethodDeclaration node) { |
| - visitNodes(node.metadata, followedBy: newlines); |
| + visitMemberMetadata(node.metadata); |
| modifier(node.externalKeyword); |
| modifier(node.modifierKeyword); |
| visitNode(node.returnType, followedBy: space); |
| @@ -1182,7 +1182,7 @@ |
| } |
| visitSimpleFormalParameter(SimpleFormalParameter node) { |
| - visitNodes(node.metadata, followedBy: space); |
| + visitMemberMetadata(node.metadata); |
| modifier(node.keyword); |
| visitNode(node.type, followedBy: space); |
| visit(node.identifier); |
| @@ -1305,7 +1305,7 @@ |
| } |
| visitTypeParameter(TypeParameter node) { |
| - visitNodes(node.metadata, followedBy: space); |
| + visitMemberMetadata(node.metadata); |
| visit(node.name); |
| token(node.keyword /* extends */, precededBy: space, followedBy: space); |
| visit(node.bound); |
| @@ -1336,7 +1336,7 @@ |
| } |
| visitVariableDeclarationList(VariableDeclarationList node) { |
| - visitNodes(node.metadata, followedBy: newlines); |
| + visitMemberMetadata(node.metadata); |
| modifier(node.keyword); |
| visitNode(node.type, followedBy: space); |
| @@ -1399,6 +1399,21 @@ |
| } |
| } |
| + /// Visit member metadata |
| + visitMemberMetadata(NodeList<Annotation> metadata) { |
| + visitNodes(metadata, separatedBy: () { |
| + space(); |
| + preserveLeadingNewlines();}, followedBy: space); |
|
scheglov
2014/04/09 22:12:54
This code is very hard to read.
Ending a block in
pquitslund
2014/04/09 22:22:17
Yes! :) Done.
On 2014/04/09 22:12:54, scheglov w
|
| + if (metadata != null && metadata.length > 0) { |
| + preserveLeadingNewlines(); |
| + } |
| + } |
| + |
| + /// Visit member metadata |
| + visitDirectiveMetadata(NodeList<Annotation> metadata) { |
| + visitNodes(metadata, separatedBy: newlines, followedBy: newlines); |
| + } |
| + |
| /// Visit the given function [body], printing the [prefix] before if given |
| /// body is not empty. |
| visitPrefixedBody(prefix(), FunctionBody body) { |