diff options
| author | Loris Cro <kappaloris@gmail.com> | 2022-03-28 18:50:52 +0200 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-07-19 19:10:11 -0700 |
| commit | 53fa75c8522be655ea2cdeec3cf8bc0d6380a532 (patch) | |
| tree | 78b7690dac3a40f933252ecfd972756e5042b0b3 /lib/docs | |
| parent | 36c4b1aac995a5b0ef273c02c0b2c0271cab6b94 (diff) | |
| download | zig-53fa75c8522be655ea2cdeec3cf8bc0d6380a532.tar.gz zig-53fa75c8522be655ea2cdeec3cf8bc0d6380a532.zip | |
autodoc: improved frontend rendering
Diffstat (limited to 'lib/docs')
| -rw-r--r-- | lib/docs/index.html | 10 | ||||
| -rw-r--r-- | lib/docs/main.js | 80 |
2 files changed, 78 insertions, 12 deletions
diff --git a/lib/docs/index.html b/lib/docs/index.html index 15abf5c417..d5b9cafcdd 100644 --- a/lib/docs/index.html +++ b/lib/docs/index.html @@ -634,7 +634,15 @@ <h2>Examples</h2> <ul id="listFnExamples" class="examples"></ul> </div> - </section> + <div id="sectTests" class="hidden"> + <h2>Tests</h2> + <div class="table-container"> + <table> + <tbody id="listTests"></tbody> + </table> + </div> + </div> + </section> </div> <div class="flex-filler"></div> </div> diff --git a/lib/docs/main.js b/lib/docs/main.js index 7dcf8a1757..f0471620f2 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -176,6 +176,8 @@ var zigAnalysis; var domListPkgs = document.getElementById("listPkgs"); var domSectTypes = document.getElementById("sectTypes"); var domListTypes = document.getElementById("listTypes"); + var domSectTests = document.getElementById("sectTests"); + var domListTests = document.getElementById("listTests"); var domSectNamespaces = document.getElementById("sectNamespaces"); var domListNamespaces = document.getElementById("listNamespaces"); var domSectErrSets = document.getElementById("sectErrSets"); @@ -349,6 +351,7 @@ var zigAnalysis; if ("declRef" in value) { value = zigAnalysis.decls[value.declRef].value; + continue; } return value; @@ -439,6 +442,7 @@ var zigAnalysis; domSectMainPkg.classList.add("hidden"); domSectPkgs.classList.add("hidden"); domSectTypes.classList.add("hidden"); + domSectTests.classList.add("hidden"); domSectNamespaces.classList.add("hidden"); domSectErrSets.classList.add("hidden"); domSectFns.classList.add("hidden"); @@ -845,10 +849,10 @@ var zigAnalysis; if ("call" in typeValue) { var result = ""; var call = zigAnalysis.calls[typeValue.call]; - var functionName = typeValueName(call.func); + var functionName = typeValueName(call.func, wantHtml, wantLink, fnDecl, linkFnNameDecl); result += functionName + "("; for (var j = 0; j < call.args.length; j += 1) { - result += typeValueName(call.args[j]); + result += typeValueName(call.args[j], wantHtml, wantLink, fnDecl, linkFnNameDecl); if (j != call.args.length -1) result += ","; } @@ -878,6 +882,22 @@ var zigAnalysis; return result; } + if ("declRef" in typeValue) { + return zigAnalysis.decls[typeValue.declRef].name; + } + + if ("string" in typeValue) { + return typeValue.string + " (string)"; + } + + if ("anytype" in typeValue) { + return "anytype"; + } + + if ("this" in typeValue) { + return "this"; + } + console.assert("type" in typeValue) var typeIndex = typeValue.type; var typeObj = zigAnalysis.types[typeIndex]; @@ -1133,7 +1153,7 @@ var zigAnalysis; if (typeObj.params) { var fields = null; var isVarArgs = false; - var fnNode = zigAnalysis.astNodes[fnDecl.src]; + var fnNode = zigAnalysis.astNodes[typeObj.src]; fields = fnNode.fields; isVarArgs = fnNode.varArgs; @@ -1411,12 +1431,17 @@ var zigAnalysis; function categorizeDecls(decls, typesList, namespacesList, errSetsList, - fnsList, varsList, valsList) { + fnsList, varsList, valsList, testsList) { for (var i = 0; i < decls.length; i += 1) { var decl = zigAnalysis.decls[decls[i]]; var declValue = resolveValue(decl.value); + if (decl.isTest) { + testsList.push(decl); + continue; + } + if (decl.kind === 'var') { varsList.push(decl); continue; @@ -1427,11 +1452,15 @@ var zigAnalysis; let c = zigAnalysis.calls[declValue.call]; console.assert("comptimeExpr" in c.ret); let fDecl = resolveValue(c.func); - console.assert("type" in fDecl); - let fType = zigAnalysis.types[fDecl.type]; - console.assert("type" in fType.ret); - if (fType.ret.type === typeTypeId) { - typesList.push(decl); + if ("type" in fDecl) { + console.assert("type" in fDecl); + let fType = zigAnalysis.types[fDecl.type]; + console.assert("type" in fType.ret); + if (fType.ret.type === typeTypeId) { + typesList.push(decl); + } else { + valsList.push(decl); + } } else { valsList.push(decl); } @@ -1468,13 +1497,14 @@ var zigAnalysis; var fnsList = []; var varsList = []; var valsList = []; + var testsList = []; categorizeDecls(container.pubDecls, typesList, namespacesList, errSetsList, - fnsList, varsList, valsList); + fnsList, varsList, valsList, testsList); if (curNav.showPrivDecls) categorizeDecls(container.privDecls, typesList, namespacesList, errSetsList, - fnsList, varsList, valsList); + fnsList, varsList, valsList, testsList); typesList.sort(byNameProperty); @@ -1483,6 +1513,7 @@ var zigAnalysis; fnsList.sort(byNameProperty); varsList.sort(byNameProperty); valsList.sort(byNameProperty); + testsList.sort(byNameProperty); if (container.src != null) { var docs = zigAnalysis.astNodes[container.src].docs; @@ -1638,6 +1669,33 @@ var zigAnalysis; } domSectValues.classList.remove("hidden"); } + + if (testsList.length !== 0) { + resizeDomList(domListTests, testsList.length, + '<tr><td><a href="#"></a></td><td></td><td></td></tr>'); + for (var i = 0; i < testsList.length; i += 1) { + var decl = testsList[i]; + var trDom = domListTests.children[i]; + + var tdName = trDom.children[0]; + var tdNameA = tdName.children[0]; + var tdType = trDom.children[1]; + var tdDesc = trDom.children[2]; + + tdNameA.setAttribute('href', navLinkDecl(decl.name)); + tdNameA.textContent = decl.name; + + tdType.innerHTML = typeValueName(typeOfDecl(decl), true, true); + + var docs = zigAnalysis.astNodes[decl.src].docs; + if (docs != null) { + tdDesc.innerHTML = shortDescMarkdown(docs); + } else { + tdDesc.textContent = ""; + } + } + domSectTests.classList.remove("hidden"); + } } function operatorCompare(a, b) { |
