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

Side by Side Diff: pkg/dartdoc/lib/dartdoc.dart

Issue 11340044: FieldMirror => VariableMirror (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 /** 5 /**
6 * To generate docs for a library, run this script with the path to an 6 * To generate docs for a library, run this script with the path to an
7 * entrypoint .dart file, like: 7 * entrypoint .dart file, like:
8 * 8 *
9 * $ dart dartdoc.dart foo.dart 9 * $ dart dartdoc.dart foo.dart
10 * 10 *
(...skipping 1017 matching lines...) Expand 10 before | Expand all | Expand 10 after
1028 if (!showPrivate && member.isPrivate) return; 1028 if (!showPrivate && member.isPrivate) return;
1029 if (host is LibraryMirror || member.isStatic) { 1029 if (host is LibraryMirror || member.isStatic) {
1030 if (member is MethodMirror) { 1030 if (member is MethodMirror) {
1031 if (member.isGetter) { 1031 if (member.isGetter) {
1032 staticGetters[member.displayName] = member; 1032 staticGetters[member.displayName] = member;
1033 } else if (member.isSetter) { 1033 } else if (member.isSetter) {
1034 staticSetters[member.displayName] = member; 1034 staticSetters[member.displayName] = member;
1035 } else { 1035 } else {
1036 staticMethods.add(member); 1036 staticMethods.add(member);
1037 } 1037 }
1038 } else if (member is FieldMirror) { 1038 } else if (member is VariableMirror) {
1039 staticGetters[member.displayName] = member; 1039 staticGetters[member.displayName] = member;
1040 } 1040 }
1041 } 1041 }
1042 }); 1042 });
1043 1043
1044 if (host is ClassMirror) { 1044 if (host is ClassMirror) {
1045 var iterable = new HierarchyIterable(host, includeType: true); 1045 var iterable = new HierarchyIterable(host, includeType: true);
1046 for (ClassMirror type in iterable) { 1046 for (ClassMirror type in iterable) {
1047 if (!host.isObject && !inheritFromObject && type.isObject) continue; 1047 if (!host.isObject && !inheritFromObject && type.isObject) continue;
1048 1048
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 instanceOperators.add(member); 1095 instanceOperators.add(member);
1096 if (member.owner == host) { 1096 if (member.owner == host) {
1097 allOperatorsInherited = false; 1097 allOperatorsInherited = false;
1098 } 1098 }
1099 } else { 1099 } else {
1100 instanceMethods.add(member); 1100 instanceMethods.add(member);
1101 if (member.owner == host) { 1101 if (member.owner == host) {
1102 allMethodsInherited = false; 1102 allMethodsInherited = false;
1103 } 1103 }
1104 } 1104 }
1105 } else if (member is FieldMirror) { 1105 } else if (member is VariableMirror) {
1106 instanceGetters[member.displayName] = member; 1106 instanceGetters[member.displayName] = member;
1107 if (member.owner == host) { 1107 if (member.owner == host) {
1108 allPropertiesInherited = false; 1108 allPropertiesInherited = false;
1109 } 1109 }
1110 } 1110 }
1111 }); 1111 });
1112 1112
1113 instanceOperators.sort((MethodMirror a, MethodMirror b) { 1113 instanceOperators.sort((MethodMirror a, MethodMirror b) {
1114 return operatorOrderMap[a.simpleName].compareTo( 1114 return operatorOrderMap[a.simpleName].compareTo(
1115 operatorOrderMap[b.simpleName]); 1115 operatorOrderMap[b.simpleName]);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1147 nameList.sort((String a, String b) { 1147 nameList.sort((String a, String b) {
1148 return a.toLowerCase().compareTo(b.toLowerCase()); 1148 return a.toLowerCase().compareTo(b.toLowerCase());
1149 }); 1149 });
1150 1150
1151 writeln('<div${allInherited ? ' class="inherited"' : ''}>'); 1151 writeln('<div${allInherited ? ' class="inherited"' : ''}>');
1152 writeln('<h3>$title</h3>'); 1152 writeln('<h3>$title</h3>');
1153 for (String name in nameList) { 1153 for (String name in nameList) {
1154 MemberMirror getter = getters[name]; 1154 MemberMirror getter = getters[name];
1155 MemberMirror setter = setters[name]; 1155 MemberMirror setter = setters[name];
1156 if (setter == null) { 1156 if (setter == null) {
1157 if (getter is FieldMirror) { 1157 if (getter is VariableMirror) {
1158 // We have a field. 1158 // We have a field.
1159 docField(host, getter); 1159 docField(host, getter);
1160 } else { 1160 } else {
1161 // We only have a getter. 1161 // We only have a getter.
1162 assert(getter is MethodMirror); 1162 assert(getter is MethodMirror);
1163 docProperty(host, getter, null); 1163 docProperty(host, getter, null);
1164 } 1164 }
1165 } else if (getter == null) { 1165 } else if (getter == null) {
1166 // We only have a setter => Document as a method. 1166 // We only have a setter => Document as a method.
1167 assert(setter is MethodMirror); 1167 assert(setter is MethodMirror);
1168 docMethod(host, setter); 1168 docMethod(host, setter);
1169 } else { 1169 } else {
1170 DocComment getterComment = getMemberComment(getter); 1170 DocComment getterComment = getMemberComment(getter);
1171 DocComment setterComment = getMemberComment(setter); 1171 DocComment setterComment = getMemberComment(setter);
1172 if (getter.owner !== setter.owner || 1172 if (getter.owner !== setter.owner ||
1173 getterComment != null && setterComment != null) { 1173 getterComment != null && setterComment != null) {
1174 // Both have comments or are not declared in the same class 1174 // Both have comments or are not declared in the same class
1175 // => Documents separately. 1175 // => Documents separately.
1176 if (getter is FieldMirror) { 1176 if (getter is VariableMirror) {
1177 // Document field as a getter (setter is inherited). 1177 // Document field as a getter (setter is inherited).
1178 docField(host, getter, asGetter: true); 1178 docField(host, getter, asGetter: true);
1179 } else { 1179 } else {
1180 docMethod(host, getter); 1180 docMethod(host, getter);
1181 } 1181 }
1182 if (setter is FieldMirror) { 1182 if (setter is VariableMirror) {
1183 // Document field as a setter (getter is inherited). 1183 // Document field as a setter (getter is inherited).
1184 docField(host, setter, asSetter: true); 1184 docField(host, setter, asSetter: true);
1185 } else { 1185 } else {
1186 docMethod(host, setter); 1186 docMethod(host, setter);
1187 } 1187 }
1188 } else { 1188 } else {
1189 // Document as field. 1189 // Document as field.
1190 docProperty(host, getter, setter); 1190 docProperty(host, getter, setter);
1191 } 1191 }
1192 } 1192 }
(...skipping 19 matching lines...) Expand all
1212 * [FieldMirror] it is documented as a getter or setter depending upon the 1212 * [FieldMirror] it is documented as a getter or setter depending upon the
1213 * value of [asGetter]. 1213 * value of [asGetter].
1214 */ 1214 */
1215 void docMethod(ObjectMirror host, MemberMirror member, 1215 void docMethod(ObjectMirror host, MemberMirror member,
1216 {bool asGetter: false}) { 1216 {bool asGetter: false}) {
1217 _totalMembers++; 1217 _totalMembers++;
1218 _currentMember = member; 1218 _currentMember = member;
1219 1219
1220 bool isAbstract = false; 1220 bool isAbstract = false;
1221 String name = member.displayName; 1221 String name = member.displayName;
1222 if (member is FieldMirror) { 1222 if (member is VariableMirror) {
1223 if (asGetter) { 1223 if (asGetter) {
1224 // Getter. 1224 // Getter.
1225 name = 'get $name'; 1225 name = 'get $name';
1226 } else { 1226 } else {
1227 // Setter. 1227 // Setter.
1228 name = 'set $name'; 1228 name = 'set $name';
1229 } 1229 }
1230 } else { 1230 } else {
1231 assert(member is MethodMirror); 1231 assert(member is MethodMirror);
1232 isAbstract = member.isAbstract; 1232 isAbstract = member.isAbstract;
(...skipping 24 matching lines...) Expand all
1257 write(member.isConst ? 'const ' : 'new '); 1257 write(member.isConst ? 'const ' : 'new ');
1258 } 1258 }
1259 } else if (member.isAbstract) { 1259 } else if (member.isAbstract) {
1260 write('abstract '); 1260 write('abstract ');
1261 } 1261 }
1262 1262
1263 if (!member.isConstructor) { 1263 if (!member.isConstructor) {
1264 annotateType(host, member.returnType); 1264 annotateType(host, member.returnType);
1265 } 1265 }
1266 } else { 1266 } else {
1267 assert(member is FieldMirror); 1267 assert(member is VariableMirror);
1268 if (asGetter) { 1268 if (asGetter) {
1269 annotateType(host, member.type); 1269 annotateType(host, member.type);
1270 } else { 1270 } else {
1271 write('void '); 1271 write('void ');
1272 } 1272 }
1273 } 1273 }
1274 1274
1275 write('<strong>$name</strong>'); 1275 write('<strong>$name</strong>');
1276 1276
1277 if (member is MethodMirror) { 1277 if (member is MethodMirror) {
1278 if (!member.isGetter) { 1278 if (!member.isGetter) {
1279 docParamList(host, member.parameters); 1279 docParamList(host, member.parameters);
1280 } 1280 }
1281 } else { 1281 } else {
1282 assert(member is FieldMirror); 1282 assert(member is VariableMirror);
1283 if (!asGetter) { 1283 if (!asGetter) {
1284 write('('); 1284 write('(');
1285 annotateType(host, member.type); 1285 annotateType(host, member.type);
1286 write(' value)'); 1286 write(' value)');
1287 } 1287 }
1288 } 1288 }
1289 1289
1290 var prefix = host is LibraryMirror ? '' : '${typeName(host)}.'; 1290 var prefix = host is LibraryMirror ? '' : '${typeName(host)}.';
1291 write(''' <a class="anchor-link" href="#${memberAnchor(member)}" 1291 write(''' <a class="anchor-link" href="#${memberAnchor(member)}"
1292 title="Permalink to $prefix$name">#</a>'''); 1292 title="Permalink to $prefix$name">#</a>''');
1293 writeln('</h4>'); 1293 writeln('</h4>');
1294 1294
1295 if (inherited) { 1295 if (inherited) {
1296 write('<div class="inherited-from">inherited from '); 1296 write('<div class="inherited-from">inherited from ');
1297 annotateType(host, member.owner); 1297 annotateType(host, member.owner);
1298 write('</div>'); 1298 write('</div>');
1299 } 1299 }
1300 1300
1301 writeln('<div class="doc">'); 1301 writeln('<div class="doc">');
1302 docComment(host, getMemberComment(member)); 1302 docComment(host, getMemberComment(member));
1303 if (showCode) { 1303 if (showCode) {
1304 docCode(member.location); 1304 docCode(member.location);
1305 } 1305 }
1306 writeln('</div>'); 1306 writeln('</div>');
1307 1307
1308 writeln('</div>'); 1308 writeln('</div>');
1309 } 1309 }
1310 1310
1311 void docField(ObjectMirror host, FieldMirror field, 1311 void docField(ObjectMirror host, VariableMirror field,
1312 {bool asGetter: false, bool asSetter: false}) { 1312 {bool asGetter: false, bool asSetter: false}) {
1313 if (asGetter) { 1313 if (asGetter) {
1314 docMethod(host, field, asGetter: true); 1314 docMethod(host, field, asGetter: true);
1315 } else if (asSetter) { 1315 } else if (asSetter) {
1316 docMethod(host, field, asGetter: false); 1316 docMethod(host, field, asGetter: false);
1317 } else { 1317 } else {
1318 docProperty(host, field, null); 1318 docProperty(host, field, null);
1319 } 1319 }
1320 } 1320 }
1321 1321
(...skipping 14 matching lines...) Expand all
1336 writeln('<div class="field${inherited ? ' inherited' : ''}">' 1336 writeln('<div class="field${inherited ? ' inherited' : ''}">'
1337 '<h4 id="${memberAnchor(getter)}">'); 1337 '<h4 id="${memberAnchor(getter)}">');
1338 1338
1339 if (includeSource) { 1339 if (includeSource) {
1340 writeln('<button class="show-code">Code</button>'); 1340 writeln('<button class="show-code">Code</button>');
1341 } 1341 }
1342 1342
1343 bool isConst = false; 1343 bool isConst = false;
1344 bool isFinal; 1344 bool isFinal;
1345 TypeMirror type; 1345 TypeMirror type;
1346 if (getter is FieldMirror) { 1346 if (getter is VariableMirror) {
1347 assert(setter == null); 1347 assert(setter == null);
1348 isConst = getter.isConst; 1348 isConst = getter.isConst;
1349 isFinal = getter.isFinal; 1349 isFinal = getter.isFinal;
1350 type = getter.type; 1350 type = getter.type;
1351 } else { 1351 } else {
1352 assert(getter is MethodMirror); 1352 assert(getter is MethodMirror);
1353 isFinal = setter == null; 1353 isFinal = setter == null;
1354 type = getter.returnType; 1354 type = getter.returnType;
1355 } 1355 }
1356 1356
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
1857 final ClassMirror inheritedFrom; 1857 final ClassMirror inheritedFrom;
1858 1858
1859 DocComment(this.text, [this.inheritedFrom = null]) { 1859 DocComment(this.text, [this.inheritedFrom = null]) {
1860 assert(text != null && !text.trim().isEmpty); 1860 assert(text != null && !text.trim().isEmpty);
1861 } 1861 }
1862 1862
1863 String get html => md.markdownToHtml(text); 1863 String get html => md.markdownToHtml(text);
1864 1864
1865 String toString() => text; 1865 String toString() => text;
1866 } 1866 }
OLDNEW
« no previous file with comments | « no previous file | pkg/dartdoc/lib/mirrors.dart » ('j') | pkg/dartdoc/lib/src/mirrors/dart2js_mirror.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698