Commit 3ce83e879b
Changed files (2)
lib
std
special
lib/std/special/docs/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>Documentation - Zig</title>
- <link rel="icon" href="favicon.png">
+ <link rel="icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAgklEQVR4AWMYWuD7EllJIM4G4g4g5oIJ/odhOJ8wToOxSTXgNxDHoeiBMfA4+wGShjyYOCkG/IGqWQziEzYAoUAeiF9D5U+DxEg14DRU7jWIT5IBIOdCxf+A+CQZAAoopEB7QJwBCBwHiip8UYmRdrAlDpIMgApwQZNnNii5Dq0MBgCxxycBnwEd+wAAAABJRU5ErkJggg==">
<style type="text/css">
body {
font-family: system-ui, -apple-system, Roboto, "Segoe UI", sans-serif;
@@ -127,7 +127,7 @@
text-align: center;
font-size: 1.5em;
}
- dt, dd {
+ #helpDialog dt, #helpDialog dd {
display: inline;
margin: 0 0.2em;
}
@@ -152,10 +152,8 @@
background-color: #93e196;
}
- #tableFnErrors tr td:first-child{
- text-align: right;
+ #tableFnErrors dt {
font-weight: bold;
- vertical-align: top;
}
#sectGlobalVars td, #sectFns td, #sectFields td {
@@ -297,7 +295,7 @@
<div id="fnErrorsAnyError">
<p><span class="tok-type">anyerror</span> means the error set is known only at runtime.</p>
</div>
- <table id="tableFnErrors"><tbody id="listFnErrors"></tbody></table>
+ <div id="tableFnErrors"><dl id="listFnErrors"></dl></div>
</div>
<div id="fnExamples" class="hidden"></div>
<div id="fnNoExamples" class="hidden">
lib/std/special/docs/main.js
@@ -44,6 +44,7 @@
var typeKindIntId;
var typeKindBoolId;
var typeKindVoidId;
+ var typeKindNoReturnId;
var typeKindErrSetId;
var typeKindErrUnionId;
findTypeKinds();
@@ -171,7 +172,9 @@
}
throw new Error("docs for this decl which is not a container");
}
- renderType(lastDecl);
+ if (lastDecl.kind != null) {
+ renderType(lastDecl);
+ }
if (lastDecl.pubDecls != null) {
renderContainer(lastDecl);
}
@@ -211,38 +214,7 @@
}
if (errSetTypeIndex != null) {
var errSetType = zigAnalysis.types[errSetTypeIndex];
- if (errSetType.errors == null) {
- domFnErrorsAnyError.classList.remove("hidden");
- } else {
- var errorList = [];
- for (var i = 0; i < errSetType.errors.length; i += 1) {
- var errObj = zigAnalysis.errors[errSetType.errors[i]];
- var srcObj = zigAnalysis.astNodes[errObj.src];
- errorList.push({
- err: errObj,
- docs: srcObj.docs,
- });
- }
- errorList.sort(function(a, b) {
- return operatorCompare(a.err.name.toLowerCase(), b.err.name.toLowerCase());
- });
-
- resizeDomList(domListFnErrors, errorList.length, '<tr><td></td><td></td></tr>');
- for (var i = 0; i < errorList.length; i += 1) {
- var trDom = domListFnErrors.children[i];
- var nameTdDom = trDom.children[0];
- var descTdDom = trDom.children[1];
- nameTdDom.textContent = errorList[i].err.name;
- var docs = errorList[i].docs;
- if (docs != null) {
- descTdDom.innerHTML = markdown(docs);
- } else {
- descTdDom.textContent = "";
- }
- }
- domTableFnErrors.classList.remove("hidden");
- }
- domSectFnErrors.classList.remove("hidden");
+ renderErrorSet(errSetType);
}
var protoSrcIndex;
@@ -375,6 +347,19 @@
return navLink(curNav.pkgNames, curNav.declNames.concat([childName]));
}
+ function resizeDomListDl(dlDom, desiredLen) {
+ // add the missing dom entries
+ var i, ev;
+ for (i = dlDom.childElementCount / 2; i < desiredLen; i += 1) {
+ dlDom.insertAdjacentHTML('beforeend', '<dt></dt><dd></dd>');
+ }
+ // remove extra dom entries
+ while (desiredLen < dlDom.childElementCount / 2) {
+ dlDom.removeChild(dlDom.lastChild);
+ dlDom.removeChild(dlDom.lastChild);
+ }
+ }
+
function resizeDomList(listDom, desiredLen, templateHtml) {
// add the missing dom entries
var i, ev;
@@ -498,6 +483,12 @@
} else {
return "void";
}
+ case typeKindNoReturnId:
+ if (wantHtml) {
+ return '<span class="tok-type">noreturn</span>';
+ } else {
+ return "noreturn";
+ }
case typeKindErrSetId:
if (typeObj.errors == null) {
if (wantHtml) {
@@ -569,9 +560,46 @@
function renderType(typeObj) {
var name = typeName(typeObj, false, false);
if (name != null && name != "") {
- domHdrName.innerText = zigAnalysis.typeKinds[typeObj.kind] + " " + name;
+ domHdrName.innerText = name + " (" + zigAnalysis.typeKinds[typeObj.kind] + ")";
domHdrName.classList.remove("hidden");
}
+ if (typeObj.kind == typeKindErrSetId) {
+ renderErrorSet(typeObj);
+ }
+ }
+
+ function renderErrorSet(errSetType) {
+ if (errSetType.errors == null) {
+ domFnErrorsAnyError.classList.remove("hidden");
+ } else {
+ var errorList = [];
+ for (var i = 0; i < errSetType.errors.length; i += 1) {
+ var errObj = zigAnalysis.errors[errSetType.errors[i]];
+ var srcObj = zigAnalysis.astNodes[errObj.src];
+ errorList.push({
+ err: errObj,
+ docs: srcObj.docs,
+ });
+ }
+ errorList.sort(function(a, b) {
+ return operatorCompare(a.err.name.toLowerCase(), b.err.name.toLowerCase());
+ });
+
+ resizeDomListDl(domListFnErrors, errorList.length);
+ for (var i = 0; i < errorList.length; i += 1) {
+ var nameTdDom = domListFnErrors.children[i * 2 + 0];
+ var descTdDom = domListFnErrors.children[i * 2 + 1];
+ nameTdDom.textContent = errorList[i].err.name;
+ var docs = errorList[i].docs;
+ if (docs != null) {
+ descTdDom.innerHTML = markdown(docs);
+ } else {
+ descTdDom.textContent = "";
+ }
+ }
+ domTableFnErrors.classList.remove("hidden");
+ }
+ domSectFnErrors.classList.remove("hidden");
}
function allCompTimeFnCallsHaveTypeResult(typeIndex, value) {
@@ -782,6 +810,8 @@
typeKindBoolId = i;
} else if (zigAnalysis.typeKinds[i] === "Void") {
typeKindVoidId = i;
+ } else if (zigAnalysis.typeKinds[i] === "NoReturn") {
+ typeKindNoReturnId = i;
} else if (zigAnalysis.typeKinds[i] === "ErrorSet") {
typeKindErrSetId = i;
} else if (zigAnalysis.typeKinds[i] === "ErrorUnion") {
@@ -809,6 +839,9 @@
if (typeKindVoidId == null) {
throw new Error("No type kind 'Void' found");
}
+ if (typeKindNoReturnId == null) {
+ throw new Error("No type kind 'Void' found");
+ }
if (typeKindErrSetId == null) {
throw new Error("No type kind 'ErrorSet' found");
}