Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: tools/dom/scripts/idlrenderer.dart

Issue 2827793002: Format all files under tools and utils directory. (Closed)
Patch Set: Format all files under tools and utils directory. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/dom/docs/test/docs_test.dart ('k') | tools/dom/src/AttributeMap.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 List sorted(Iterable input, [compare, key]) { 5 List sorted(Iterable input, [compare, key]) {
6 comparator(compare, key) { 6 comparator(compare, key) {
7 if (compare == null && key == null) 7 if (compare == null && key == null) return (a, b) => a.compareTo(b);
8 return (a, b) => a.compareTo(b); 8 if (compare == null) return (a, b) => key(a).compareTo(key(b));
9 if (compare == null) 9 if (key == null) return compare;
10 return (a, b) => key(a).compareTo(key(b));
11 if (key == null)
12 return compare;
13 return (a, b) => compare(key(a), key(b)); 10 return (a, b) => compare(key(a), key(b));
14 } 11 }
12
15 List copy = new List.from(input); 13 List copy = new List.from(input);
16 copy.sort(comparator(compare, key)); 14 copy.sort(comparator(compare, key));
17 return copy; 15 return copy;
18 } 16 }
19 17
20 render(idl_node, [indent_str=' ']) { 18 render(idl_node, [indent_str = ' ']) {
21 var output = ['']; 19 var output = [''];
22 var indent_stack = []; 20 var indent_stack = [];
23 21
24 indented(action) { // TODO: revert to indented(action()) { 22 // TODO: revert to indented(action()) {
23 indented(action) {
25 indent_stack.add(indent_str); 24 indent_stack.add(indent_str);
26 action(); 25 action();
27 indent_stack.removeLast(); 26 indent_stack.removeLast();
28 } 27 }
29 28
30 sort(nodes) => sorted(nodes, key: (a) => a.id); 29 sort(nodes) => sorted(nodes, key: (a) => a.id);
31 30
32 var w; // For some reason mutually recursive local functions don't work. 31 var w; // For some reason mutually recursive local functions don't work.
33 32
34 wln([node]) { 33 wln([node]) {
35 w(node); 34 w(node);
36 output.add('\n'); 35 output.add('\n');
37 } 36 }
38 37
39 w = (node, [list_separator]) { 38 w = (node, [list_separator]) {
40 /* 39 /*
41 Writes the given node. 40 Writes the given node.
42 41
43 Args: 42 Args:
44 node -- a string, IDLNode instance or a list of such. 43 node -- a string, IDLNode instance or a list of such.
45 list_separator -- if provided, and node is a list, 44 list_separator -- if provided, and node is a list,
46 list_separator will be written between the list items. 45 list_separator will be written between the list items.
47 */ 46 */
48 if (node == null) { 47 if (node == null) {
49 return; 48 return;
50 } else if (node is String) { 49 } else if (node is String) {
51 if (output.last.endsWith('\n')) 50 if (output.last.endsWith('\n')) output.addAll(indent_stack);
52 output.addAll(indent_stack);
53 output.add(node); 51 output.add(node);
54 } else if (node is List) { 52 } else if (node is List) {
55 var separator = null; 53 var separator = null;
56 for (var element in node) { 54 for (var element in node) {
57 w(separator); 55 w(separator);
58 separator = list_separator; 56 separator = list_separator;
59 w(element); 57 w(element);
60 } 58 }
61 } else if (node is IDLFile) { 59 } else if (node is IDLFile) {
62 w(node.modules); 60 w(node.modules);
63 w(node.interfaces); 61 w(node.interfaces);
64 } else if (node is IDLModule) { 62 } else if (node is IDLModule) {
65 w(node.annotations); 63 w(node.annotations);
66 w(node.extAttrs); 64 w(node.extAttrs);
67 wln('module ${node.id} {'); 65 wln('module ${node.id} {');
68 indented(() { 66 indented(() {
69 w(node.interfaces); 67 w(node.interfaces);
70 w(node.typedefs); 68 w(node.typedefs);
71 }); 69 });
72 wln('};'); 70 wln('};');
73 } else if (node is IDLInterface) { 71 } else if (node is IDLInterface) {
74 w(node.annotations); 72 w(node.annotations);
75 w(node.extAttrs); 73 w(node.extAttrs);
76 w('interface ${node.id}'); 74 w('interface ${node.id}');
77 indented(() { 75 indented(() {
78 if (!node.parents.isEmpty) { 76 if (!node.parents.isEmpty) {
79 wln(' :'); 77 wln(' :');
80 w(node.parents, ',\n'); 78 w(node.parents, ',\n');
79 }
80 wln(' {');
81 section(list, comment) {
82 if (list != null && !list.isEmpty) {
83 wln();
84 wln(comment);
85 w(sort(list));
81 } 86 }
82 wln(' {'); 87 }
83 section(list, comment) { 88
84 if (list != null && !list.isEmpty) { 89 section(node.constants, '/* Constants */');
85 wln(); 90 section(node.attributes, '/* Attributes */');
86 wln(comment); 91 section(node.operations, '/* Operations */');
87 w(sort(list)); 92 section(node.snippets, '/* Snippets */');
88 } 93 });
89 }
90 section(node.constants, '/* Constants */');
91 section(node.attributes, '/* Attributes */');
92 section(node.operations, '/* Operations */');
93 section(node.snippets, '/* Snippets */');
94 });
95 wln('};'); 94 wln('};');
96 } else if (node is IDLParentInterface) { 95 } else if (node is IDLParentInterface) {
97 w(node.annotations); 96 w(node.annotations);
98 w(node.type.id); 97 w(node.type.id);
99 } else if (node is IDLAnnotations) { 98 } else if (node is IDLAnnotations) {
100 for (var name in sorted(node.map.keys)) { 99 for (var name in sorted(node.map.keys)) {
101 IDLAnnotation annotation = node.map[name]; 100 IDLAnnotation annotation = node.map[name];
102 var args = annotation.map; 101 var args = annotation.map;
103 if (args.isEmpty) { 102 if (args.isEmpty) {
104 w('@$name'); 103 w('@$name');
105 } else { 104 } else {
106 var formattedArgs = []; 105 var formattedArgs = [];
107 for (var argName in sorted(args.keys)) { 106 for (var argName in sorted(args.keys)) {
108 var argValue = args[argName]; 107 var argValue = args[argName];
109 if (argValue == null) 108 if (argValue == null)
110 formattedArgs.add(argName); 109 formattedArgs.add(argName);
111 else 110 else
112 formattedArgs.add('$argName=$argValue'); 111 formattedArgs.add('$argName=$argValue');
113 } 112 }
114 w('@$name(${formattedArgs.join(',')})'); 113 w('@$name(${formattedArgs.join(',')})');
115 } 114 }
116 w(' '); 115 w(' ');
117 } 116 }
118 } else if (node is IDLExtAttrs) { 117 } else if (node is IDLExtAttrs) {
119 if(!node.map.isEmpty) { 118 if (!node.map.isEmpty) {
120 w('['); 119 w('[');
121 var sep = null; 120 var sep = null;
122 for (var name in sorted(node.map.keys)) { 121 for (var name in sorted(node.map.keys)) {
123 w(sep); 122 w(sep);
124 sep = ', '; 123 sep = ', ';
125 w(name); 124 w(name);
126 var value = node.map[name]; 125 var value = node.map[name];
127 if (value != null) { 126 if (value != null) {
128 w('='); 127 w('=');
129 w(value); 128 w(value);
(...skipping 23 matching lines...) Expand all
153 w(node.specials, ' '); 152 w(node.specials, ' ');
154 w(' '); 153 w(' ');
155 } 154 }
156 w('${node.type.id} ${node.id}'); 155 w('${node.type.id} ${node.id}');
157 w('('); 156 w('(');
158 w(node.arguments, ', '); 157 w(node.arguments, ', ');
159 wln(');'); 158 wln(');');
160 } else if (node is IDLArgument) { 159 } else if (node is IDLArgument) {
161 w(node.extAttrs); 160 w(node.extAttrs);
162 w('in '); 161 w('in ');
163 if (node.isOptional) 162 if (node.isOptional) w('optional ');
164 w('optional ');
165 w('${node.type.id} ${node.id}'); 163 w('${node.type.id} ${node.id}');
166 } else if (node is IDLExtAttrFunctionValue) { 164 } else if (node is IDLExtAttrFunctionValue) {
167 w(node.name); 165 w(node.name);
168 w('('); 166 w('(');
169 w(node.arguments, ', '); 167 w(node.arguments, ', ');
170 w(')'); 168 w(')');
171 } else if (node is IDLTypeDef) { 169 } else if (node is IDLTypeDef) {
172 wln('typedef ${node.type.id} ${node.id};'); 170 wln('typedef ${node.type.id} ${node.id};');
173 } else { 171 } else {
174 w('// $node\n'); 172 w('// $node\n');
175 } 173 }
176 }; 174 };
177 175
178 w(idl_node); 176 w(idl_node);
179 return output.join(); 177 return output.join();
180 } 178 }
OLDNEW
« no previous file with comments | « tools/dom/docs/test/docs_test.dart ('k') | tools/dom/src/AttributeMap.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698