authorgravatar for der.teufel.mail@gmail.comKrzysztof Wolicki <der.teufel.mail@gmail.com> 2023-02-04 14:02:39+01:00
committergravatar for der.teufel.mail@gmail.comKrzysztof Wolicki <der.teufel.mail@gmail.com> 2023-02-10 14:32:45+01:00
log02bc6356d72f34fdf4c0669bbcad20427f4d8991
treef37d041eb18992b9bb022a6d8bf3f30633ed13bc
parentd24ebf1d12cf66665b52136a2807f97ff021d78d

autodoc: main.js cleanup and formatting


1 files changed, 76 insertions(+), 80 deletions(-)

lib/docs/main.js+76-80
......@@ -106,7 +106,7 @@ const NAV_MODES = {
106106 // empty array means refers to the package itself
107107 declNames: [],
108108 // these will be all types, except the last one may be a type or a decl
109 declObjs: [],
109 declObjs: [],
110110 // (a, b, c, d) comptime call; result is the value the docs refer to
111111 callName: null,
112112 };
......@@ -200,7 +200,7 @@ const NAV_MODES = {
200200 case NAV_MODES.GUIDES:
201201 document.title = "[G] " + curNav.activeGuide + suffix;
202202 return;
203 }
203 }
204204 }
205205
206206 function isDecl(x) {
......@@ -401,7 +401,7 @@ const NAV_MODES = {
401401 domGuideSwitch.classList.add("active");
402402 domApiSwitch.classList.remove("active");
403403 domDocs.classList.add("hidden");
404 domGuides.classList.remove("hidden");
404 domGuides.classList.remove("hidden");
405405 domApiMenu.classList.add("hidden");
406406
407407 // sidebar guides list
......@@ -422,7 +422,7 @@ const NAV_MODES = {
422422 if (list.length > 0) {
423423 domGuidesMenu.classList.remove("hidden");
424424 }
425
425
426426 // main content
427427 const activeGuide = zigAnalysis.guides[curNav.activeGuide];
428428 if (activeGuide == undefined) {
......@@ -454,7 +454,7 @@ const NAV_MODES = {
454454
455455 Happy writing!
456456 `);
457 } else {
457 } else {
458458 domGuides.innerHTML = markdown(activeGuide);
459459 }
460460 }
......@@ -467,7 +467,7 @@ const NAV_MODES = {
467467 domDocs.classList.remove("hidden");
468468 domApiMenu.classList.remove("hidden");
469469 domGuidesMenu.classList.add("hidden");
470
470
471471 domStatus.classList.add("hidden");
472472 domFnProto.classList.add("hidden");
473473 domSectParams.classList.add("hidden");
......@@ -537,9 +537,9 @@ const NAV_MODES = {
537537 currentType = childDecl;
538538 curNav.declObjs.push(currentType);
539539 }
540
541
542
540
541
542
543543 window.x = currentType;
544544
545545 renderNav();
......@@ -586,15 +586,15 @@ const NAV_MODES = {
586586 switch (curNav.mode) {
587587 case NAV_MODES.API:
588588 case NAV_MODES.API_INTERNAL:
589 return renderApi();
589 return renderApi();
590590 case NAV_MODES.GUIDES:
591 return renderGuides();
591 return renderGuides();
592592 default:
593 throw "?";
594 }
593 throw "?";
594 }
595595 }
596596
597
597
598598 function renderDocTest(decl) {
599599 if (!decl.decltest) return;
600600 const astNode = getAstNode(decl.decltest);
......@@ -651,7 +651,7 @@ const NAV_MODES = {
651651 wantLink: true,
652652 fnDecl,
653653 });
654
654
655655 domFnSourceLink.innerHTML = "[<a target=\"_blank\" href=\"" + sourceFileLink(fnDecl) + "\">src</a>]";
656656
657657 let docsSource = null;
......@@ -895,7 +895,7 @@ const NAV_MODES = {
895895
896896 function navLink(pkgNames, declNames, callName) {
897897 let base = curNav.mode;
898
898
899899 if (pkgNames.length === 0 && declNames.length === 0) {
900900 return base;
901901 } else if (declNames.length === 0 && callName == null) {
......@@ -919,18 +919,18 @@ const NAV_MODES = {
919919
920920 function findDeclNavLink(declName) {
921921 if (curNav.declObjs.length == 0) return null;
922 const curFile = getAstNode(curNav.declObjs[curNav.declObjs.length-1].src).file;
923
924 for (let i = curNav.declObjs.length -1; i >= 0; i--) {
922 const curFile = getAstNode(curNav.declObjs[curNav.declObjs.length - 1].src).file;
923
924 for (let i = curNav.declObjs.length - 1; i >= 0; i--) {
925925 const curDecl = curNav.declObjs[i];
926 const curDeclName = curNav.declNames[i-1];
926 const curDeclName = curNav.declNames[i - 1];
927927 if (curDeclName == declName) {
928 const declPath = curNav.declNames.slice(0,i);
928 const declPath = curNav.declNames.slice(0, i);
929929 return navLink(curNav.pkgNames, declPath);
930 }
930 }
931931
932 if (findSubDecl(curDecl, declName) != null) {
933 const declPath = curNav.declNames.slice(0,i).concat([declName]);
932 if (findSubDecl(curDecl, declName) != null) {
933 const declPath = curNav.declNames.slice(0, i).concat([declName]);
934934 return navLink(curNav.pkgNames, declPath);
935935 }
936936 }
......@@ -1362,10 +1362,6 @@ const NAV_MODES = {
13621362 payloadHtml += "truncate";
13631363 break;
13641364 }
1365 case "align_cast": {
1366 payloadHtml += "alignCast";
1367 break;
1368 }
13691365 case "has_decl": {
13701366 payloadHtml += "hasDecl";
13711367 break;
......@@ -1696,15 +1692,15 @@ const NAV_MODES = {
16961692 }
16971693 case "declRef": {
16981694 const name = getDecl(expr.declRef).name;
1699
1695
17001696 if (opts.wantHtml) {
17011697 let payloadHtml = "";
17021698 if (opts.wantLink) {
1703 payloadHtml += '<a href="'+ findDeclNavLink(name) +'">';
1699 payloadHtml += '<a href="' + findDeclNavLink(name) + '">';
17041700 }
17051701 payloadHtml +=
17061702 '<span class="tok-kw" style="color:lightblue;">' +
1707 name +
1703 name +
17081704 "</span>";
17091705 if (opts.wantLink) payloadHtml += "</a>";
17101706 return payloadHtml;
......@@ -1724,12 +1720,12 @@ const NAV_MODES = {
17241720 if ("string" in expr.refPath[i]) {
17251721 component = expr.refPath[i].string;
17261722 } else {
1727 component = exprName(expr.refPath[i], {...opts, wantLink: false});
1723 component = exprName(expr.refPath[i], { ...opts, wantLink: false });
17281724 if (opts.wantLink && "declRef" in expr.refPath[i]) {
17291725 url += "." + getDecl(expr.refPath[i].declRef).name;
1730 component = '<a href="'+ url +'">' +
1726 component = '<a href="' + url + '">' +
17311727 component +
1732 "</a>";
1728 "</a>";
17331729 }
17341730 }
17351731 name += "." + component;
......@@ -1788,7 +1784,7 @@ const NAV_MODES = {
17881784 name = "struct { ";
17891785 }
17901786 }
1791 if (structObj.fields.length > 1 && opts.wantHtml) {name += "</br>";}
1787 if (structObj.fields.length > 1 && opts.wantHtml) { name += "</br>"; }
17921788 let indent = "";
17931789 if (structObj.fields.length > 1 && opts.wantHtml) {
17941790 indent = "&nbsp;&nbsp;&nbsp;&nbsp;"
......@@ -1804,7 +1800,7 @@ const NAV_MODES = {
18041800 field_end += " ";
18051801 }
18061802
1807 for(let i = 0; i < structObj.fields.length; i += 1) {
1803 for (let i = 0; i < structObj.fields.length; i += 1) {
18081804 let fieldNode = getAstNode(structNode.fields[i]);
18091805 let fieldName = fieldNode.name;
18101806 let html = indent;
......@@ -1813,11 +1809,11 @@ const NAV_MODES = {
18131809 }
18141810
18151811 let fieldTypeExpr = structObj.fields[i];
1816 if(!structObj.is_tuple) {
1812 if (!structObj.is_tuple) {
18171813 html += ": ";
18181814 }
18191815
1820 html += exprName(fieldTypeExpr, {...opts, indent: indent});
1816 html += exprName(fieldTypeExpr, { ...opts, indent: indent });
18211817
18221818 html += field_end;
18231819
......@@ -1846,7 +1842,7 @@ const NAV_MODES = {
18461842 if (enumObj.nonexhaustive) {
18471843 fields_len += 1;
18481844 }
1849 if (fields_len > 1 && opts.wantHtml) {name += "</br>";}
1845 if (fields_len > 1 && opts.wantHtml) { name += "</br>"; }
18501846 let indent = "";
18511847 if (fields_len > 1) {
18521848 if (opts.wantHtml) {
......@@ -1864,10 +1860,10 @@ const NAV_MODES = {
18641860 } else {
18651861 field_end += " ";
18661862 }
1867 for(let i = 0; i < enumNode.fields.length; i += 1) {
1863 for (let i = 0; i < enumNode.fields.length; i += 1) {
18681864 let fieldNode = getAstNode(enumNode.fields[i]);
18691865 let fieldName = fieldNode.name;
1870 let html = indent + escapeHtml(fieldName);
1866 let html = indent + escapeHtml(fieldName);
18711867
18721868 html += field_end;
18731869
......@@ -1891,16 +1887,16 @@ const NAV_MODES = {
18911887 name = "union";
18921888 }
18931889 if (unionObj.auto_tag) {
1894 if (opts.wantHtml) {
1895 name += " (<span class='tok-kw'>enum</span>";
1896 } else {
1897 name += " (enum";
1898 }
1899 if (unionObj.tag) {
1900 name += "(" + exprName(unionObj.tag, opts) + "))";
1901 } else {
1902 name += ")";
1903 }
1890 if (opts.wantHtml) {
1891 name += " (<span class='tok-kw'>enum</span>";
1892 } else {
1893 name += " (enum";
1894 }
1895 if (unionObj.tag) {
1896 name += "(" + exprName(unionObj.tag, opts) + "))";
1897 } else {
1898 name += ")";
1899 }
19041900 } else if (unionObj.tag) {
19051901 name += " (" + exprName(unionObj.tag, opts) + ")";
19061902 }
......@@ -1922,7 +1918,7 @@ const NAV_MODES = {
19221918 } else {
19231919 field_end += " ";
19241920 }
1925 for(let i = 0; i < unionObj.fields.length; i += 1) {
1921 for (let i = 0; i < unionObj.fields.length; i += 1) {
19261922 let fieldNode = getAstNode(unionNode.fields[i]);
19271923 let fieldName = fieldNode.name;
19281924 let html = indent + escapeHtml(fieldName);
......@@ -1930,7 +1926,7 @@ const NAV_MODES = {
19301926 let fieldTypeExpr = unionObj.fields[i];
19311927 html += ": ";
19321928
1933 html += exprName(fieldTypeExpr, {...opts, indent: indent});
1929 html += exprName(fieldTypeExpr, { ...opts, indent: indent });
19341930
19351931 html += field_end;
19361932
......@@ -2159,7 +2155,7 @@ const NAV_MODES = {
21592155 opts.fnDecl = null;
21602156 opts.linkFnNameDecl = null;
21612157 let payloadHtml = "";
2162 if (opts.addParensIfFnSignature && fnObj.src == 0){
2158 if (opts.addParensIfFnSignature && fnObj.src == 0) {
21632159 payloadHtml += "(";
21642160 }
21652161 if (opts.wantHtml) {
......@@ -2175,7 +2171,7 @@ const NAV_MODES = {
21752171 if (linkFnNameDecl) {
21762172 payloadHtml +=
21772173 '<a href="' + linkFnNameDecl + '">' +
2178 escapeHtml(fnDecl.name) +
2174 escapeHtml(fnDecl.name) +
21792175 "</a>";
21802176 } else {
21812177 payloadHtml += escapeHtml(fnDecl.name);
......@@ -2194,7 +2190,7 @@ const NAV_MODES = {
21942190 fields = fnNode.fields;
21952191 isVarArgs = fnNode.varArgs;
21962192 }
2197
2193
21982194 for (let i = 0; i < fnObj.params.length; i += 1) {
21992195 if (i != 0) {
22002196 payloadHtml += ", ";
......@@ -2247,13 +2243,13 @@ const NAV_MODES = {
22472243 } else if ("typeOf" in value) {
22482244 payloadHtml += exprName(value, opts);
22492245 } else if ("typeOf_peer" in value) {
2250 payloadHtml += exprName(value, opts);
2246 payloadHtml += exprName(value, opts);
22512247 } else if ("declRef" in value) {
2252 payloadHtml += exprName(value, opts);
2248 payloadHtml += exprName(value, opts);
22532249 } else if ("call" in value) {
2254 payloadHtml += exprName(value, opts);
2250 payloadHtml += exprName(value, opts);
22552251 } else if ("refPath" in value) {
2256 payloadHtml += exprName(value, opts);
2252 payloadHtml += exprName(value, opts);
22572253 } else if ("type" in value) {
22582254 payloadHtml += exprName(value, opts);
22592255 //payloadHtml += '<span class="tok-kw">' + name + "</span>";
......@@ -2297,7 +2293,7 @@ const NAV_MODES = {
22972293 }
22982294 if (fnObj.ret != null) {
22992295 payloadHtml += exprName(fnObj.ret, {
2300 ...opts,
2296 ...opts,
23012297 addParensIfFnSignature: true,
23022298 });
23032299 } else if (opts.wantHtml) {
......@@ -2306,7 +2302,7 @@ const NAV_MODES = {
23062302 payloadHtml += "anytype";
23072303 }
23082304
2309 if (opts.addParensIfFnSignature && fnObj.src == 0){
2305 if (opts.addParensIfFnSignature && fnObj.src == 0) {
23102306 payloadHtml += ")";
23112307 }
23122308 return payloadHtml;
......@@ -2349,7 +2345,7 @@ const NAV_MODES = {
23492345 ) {
23502346 name = "std";
23512347 } else {
2352 name = exprName({ type: typeObj }, {wantHtml: false, wantLink: false});
2348 name = exprName({ type: typeObj }, { wantHtml: false, wantLink: false });
23532349 }
23542350 if (name != null && name != "") {
23552351 domHdrName.innerText =
......@@ -2640,10 +2636,10 @@ const NAV_MODES = {
26402636 }
26412637
26422638 function sourceFileLink(decl) {
2643 const srcNode = getAstNode(decl.src);
2644 return sourceFileUrlTemplate.
2645 replace("{{file}}", zigAnalysis.files[srcNode.file]).
2646 replace("{{line}}", srcNode.line + 1);
2639 const srcNode = getAstNode(decl.src);
2640 return sourceFileUrlTemplate.
2641 replace("{{file}}", zigAnalysis.files[srcNode.file]).
2642 replace("{{line}}", srcNode.line + 1);
26472643 }
26482644
26492645 function renderContainer(container) {
......@@ -2779,8 +2775,8 @@ const NAV_MODES = {
27792775 if (short != docs) {
27802776 short = markdown(short);
27812777 var long = markdown(docs);
2782 tdDesc.innerHTML =
2783 "<div class=\"expand\" ><span class=\"button\" onclick=\"toggleExpand(event)\"></span><div class=\"sum-less\">" + short + "</div>" + "<div class=\"sum-more\">" + long + "</div></details>";
2778 tdDesc.innerHTML =
2779 "<div class=\"expand\" ><span class=\"button\" onclick=\"toggleExpand(event)\"></span><div class=\"sum-less\">" + short + "</div>" + "<div class=\"sum-more\">" + long + "</div></details>";
27842780 }
27852781 else {
27862782 tdDesc.innerHTML = markdown(short);
......@@ -2814,10 +2810,10 @@ const NAV_MODES = {
28142810 html += ' = <span class="tok-number">' + fieldName + "</span>";
28152811 } else {
28162812 let fieldTypeExpr = container.fields[i];
2817 if(container.kind ==! typeKinds.Struct || !container.is_tuple) {
2813 if (container.kind !== typeKinds.Struct || !container.is_tuple) {
28182814 html += ": ";
28192815 }
2820 html += exprName(fieldTypeExpr, {wantHtml:true, wantLink:true});
2816 html += exprName(fieldTypeExpr, { wantHtml: true, wantLink: true });
28212817 let tsn = typeShorthandName(fieldTypeExpr);
28222818 if (tsn) {
28232819 html += "<span> (" + tsn + ")</span>";
......@@ -3003,8 +2999,8 @@ const NAV_MODES = {
30032999 throw new Error("No type 'type' found");
30043000 }
30053001
3006
3007 function updateCurNav() {
3002
3003 function updateCurNav() {
30083004 curNav = {
30093005 mode: NAV_MODES.API,
30103006 pkgNames: [],
......@@ -3017,7 +3013,7 @@ const NAV_MODES = {
30173013
30183014 const mode = location.hash.substring(0, 3);
30193015 let query = location.hash.substring(3);
3020
3016
30213017 const DEFAULT_HASH = NAV_MODES.API + zigAnalysis.packages[zigAnalysis.rootPkg].name;
30223018 switch (mode) {
30233019 case NAV_MODES.API:
......@@ -3033,7 +3029,7 @@ const NAV_MODES = {
30333029 nonSearchPart = query.substring(0, qpos);
30343030 curNavSearch = decodeURIComponent(query.substring(qpos + 1));
30353031 }
3036
3032
30373033 let parts = nonSearchPart.split(":");
30383034 if (parts[0] == "") {
30393035 location.hash = DEFAULT_HASH;
......@@ -3055,14 +3051,14 @@ const NAV_MODES = {
30553051
30563052 curNav.mode = mode;
30573053 curNav.activeGuide = query;
3058
3054
30593055 return;
30603056 default:
30613057 location.hash = DEFAULT_HASH;
30623058 return;
30633059 }
3064 }
3065
3060 }
3061
30663062 function onHashChange() {
30673063 updateCurNav();
30683064 if (domSearch.value !== curNavSearch) {
......@@ -3099,7 +3095,7 @@ const NAV_MODES = {
30993095 if (!callee.generic_ret) return null;
31003096 resolvedGenericRet = resolveValue({ expr: callee.generic_ret });
31013097 }
3102
3098
31033099 if ("type" in resolvedGenericRet.expr) {
31043100 parentType = getType(resolvedGenericRet.expr.type);
31053101 }
......@@ -3244,7 +3240,7 @@ const NAV_MODES = {
32443240 });
32453241 }
32463242
3247 function shortDesc(docs){
3243 function shortDesc(docs) {
32483244 const trimmed_docs = docs.trim();
32493245 let index = trimmed_docs.indexOf("\n\n");
32503246 let cut = false;