authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-10-09 16:21:34-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-10-09 16:31:20-04:00
loge0ab685467567f6da02be865654a2c4dc5f8c3a9
tree1479ab33d0a24e39c2c8f14588e6153a1ae6a55d
parent8d5e3a2f332e1fb09da8b221888c87a6fbf18f8e
signaturelock-open Commit is signed but in an unrecognized format.

generated docs: more verbose fields

also prevent docs making hyperlinks for integer types

3 files changed, 32 insertions(+), 20 deletions(-)

lib/std/special/docs/index.html+2-4
......@@ -311,10 +311,8 @@
311311 </div>
312312 <div id="sectFields" class="hidden">
313313 <h2>Fields</h2>
314 <table>
315 <tbody id="listFields">
316 </tbody>
317 </table>
314 <div id="listFields">
315 </div>
318316 </div>
319317 <div id="sectTypes" class="hidden">
320318 <h2>Types</h2>
lib/std/special/docs/main.js+29-15
......@@ -50,6 +50,8 @@
5050 var typeKindErrSetId;
5151 var typeKindErrUnionId;
5252 var typeKindStructId;
53 var typeKindUnionId;
54 var typeKindEnumId;
5355 findTypeKinds();
5456
5557 // for each package, is an array with packages to get to this one
......@@ -748,27 +750,20 @@
748750 domSectFns.classList.remove("hidden");
749751 }
750752
751 if (container.fields.length !== 0) {
752 resizeDomList(domListFields, container.fields.length,
753 '<tr><td></td><td></td><td></td></tr>');
753 if (container.fields != null && container.fields.length !== 0) {
754 resizeDomList(domListFields, container.fields.length, '<div></div>');
754755 for (var i = 0; i < container.fields.length; i += 1) {
755756 var field = container.fields[i];
756 var trDom = domListFields.children[i];
757 var divDom = domListFields.children[i];
757758
758 var tdName = trDom.children[0];
759 var tdType = trDom.children[1];
760 var tdDesc = trDom.children[2];
761
762 tdName.textContent = field.name;
763
764 tdType.innerHTML = typeIndexName(field.type, true, true);
759 var html = '<pre>' + escapeHtml(field.name) + ": " +
760 typeIndexName(field.type, true, true) + ',</pre>';
765761
766762 var docs = zigAnalysis.astNodes[field.src].docs;
767763 if (docs != null) {
768 tdDesc.innerHTML = shortDescMarkdown(docs);
769 } else {
770 tdDesc.textContent = "";
764 html += markdown(docs);
771765 }
766 divDom.innerHTML = html;
772767 }
773768 domSectFields.classList.remove("hidden");
774769 }
......@@ -846,6 +841,10 @@
846841 typeKindErrUnionId = i;
847842 } else if (zigAnalysis.typeKinds[i] === "Struct") {
848843 typeKindStructId = i;
844 } else if (zigAnalysis.typeKinds[i] === "Union") {
845 typeKindUnionId = i;
846 } else if (zigAnalysis.typeKinds[i] === "Enum") {
847 typeKindEnumId = i;
849848 }
850849 }
851850 if (typeKindTypeId == null) {
......@@ -881,6 +880,12 @@
881880 if (typeKindStructId == null) {
882881 throw new Error("No type kind 'Struct' found");
883882 }
883 if (typeKindUnionId == null) {
884 throw new Error("No type kind 'Union' found");
885 }
886 if (typeKindEnumId == null) {
887 throw new Error("No type kind 'Enum' found");
888 }
884889 }
885890
886891 function findTypeTypeId() {
......@@ -970,6 +975,13 @@
970975 return list;
971976 }
972977
978 function declCanRepresentTypeKind(typeKind) {
979 return typeKind === typeKindErrSetId ||
980 typeKind === typeKindStructId ||
981 typeKind === typeKindUnionId ||
982 typeKind === typeKindEnumId;
983 }
984
973985 function computeCanonDeclPaths() {
974986 var list = new Array(zigAnalysis.decls.length);
975987 canonTypeDecls = new Array(zigAnalysis.types.length);
......@@ -991,7 +1003,9 @@
9911003 if (list[mainDeclIndex] != null) continue;
9921004
9931005 var decl = zigAnalysis.decls[mainDeclIndex];
994 if (decl.type === typeTypeId) {
1006 if (decl.type === typeTypeId &&
1007 declCanRepresentTypeKind(zigAnalysis.types[decl.value].kind))
1008 {
9951009 canonTypeDecls[decl.value] = mainDeclIndex;
9961010 }
9971011 var declNames = item.declNames.concat([decl.name]);
src/dump_analysis.cpp+1-1
......@@ -811,7 +811,7 @@ static void anal_dump_type(AnalDumpCtx *ctx, ZigType *ty) {
811811 jw_end_array(jw);
812812 }
813813
814 {
814 if (ty->data.structure.src_field_count != 0) {
815815 jw_object_field(jw, "fields");
816816 jw_begin_array(jw);
817817