diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-10-09 15:52:55 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-10-09 15:52:55 -0400 |
| commit | 8d5e3a2f332e1fb09da8b221888c87a6fbf18f8e (patch) | |
| tree | f31180a35066bc675cf3ca6de593454e9474bdbf /lib/std | |
| parent | c4e4fa22877d2929d585f1fea1b2fc82ec8e2d1d (diff) | |
| download | zig-8d5e3a2f332e1fb09da8b221888c87a6fbf18f8e.tar.gz zig-8d5e3a2f332e1fb09da8b221888c87a6fbf18f8e.zip | |
generated docs: separate section for namespaces
if a type is a struct with no fields, then it goes in the namespaces
section.
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/special/docs/index.html | 5 | ||||
| -rw-r--r-- | lib/std/special/docs/main.js | 33 |
2 files changed, 38 insertions, 0 deletions
diff --git a/lib/std/special/docs/index.html b/lib/std/special/docs/index.html index e2c9fbfc71..068ad069d8 100644 --- a/lib/std/special/docs/index.html +++ b/lib/std/special/docs/index.html @@ -321,6 +321,11 @@ <ul id="listTypes"> </ul> </div> + <div id="sectNamespaces" class="hidden"> + <h2>Namespaces</h2> + <ul id="listNamespaces"> + </ul> + </div> <div id="sectGlobalVars" class="hidden"> <h2>Global Variables</h2> <table> diff --git a/lib/std/special/docs/main.js b/lib/std/special/docs/main.js index 8afcaa1e15..f45aad3e3d 100644 --- a/lib/std/special/docs/main.js +++ b/lib/std/special/docs/main.js @@ -6,6 +6,8 @@ var domListPkgs = document.getElementById("listPkgs"); var domSectTypes = document.getElementById("sectTypes"); var domListTypes = document.getElementById("listTypes"); + var domSectNamespaces = document.getElementById("sectNamespaces"); + var domListNamespaces = document.getElementById("listNamespaces"); var domSectErrSets = document.getElementById("sectErrSets"); var domListErrSets = document.getElementById("listErrSets"); var domSectFns = document.getElementById("sectFns"); @@ -47,6 +49,7 @@ var typeKindNoReturnId; var typeKindErrSetId; var typeKindErrUnionId; + var typeKindStructId; findTypeKinds(); // for each package, is an array with packages to get to this one @@ -104,6 +107,7 @@ domFnDocs.classList.add("hidden"); domSectPkgs.classList.add("hidden"); domSectTypes.classList.add("hidden"); + domSectNamespaces.classList.add("hidden"); domSectErrSets.classList.add("hidden"); domSectFns.classList.add("hidden"); domSectFields.classList.add("hidden"); @@ -185,6 +189,13 @@ return typeObj.kind === typeKindErrSetId; } + function typeIsStructWithNoFields(typeIndex) { + var typeObj = zigAnalysis.types[typeIndex]; + if (typeObj.kind !== typeKindStructId) + return false; + return typeObj.fields == null || typeObj.fields.length === 0; + } + function typeIsGenericFn(typeIndex) { var typeObj = zigAnalysis.types[typeIndex]; if (typeObj.kind !== typeKindFnId) { @@ -628,6 +639,7 @@ function renderContainer(container) { var typesList = []; + var namespacesList = []; var errSetsList = []; var fnsList = []; var varsList = []; @@ -641,6 +653,8 @@ if (decl.type == typeTypeId) { if (typeIsErrSet(decl.value)) { errSetsList.push(decl); + } else if (typeIsStructWithNoFields(decl.value)) { + namespacesList.push(decl); } else { typesList.push(decl); } @@ -659,6 +673,9 @@ typesList.sort(function(a, b) { return operatorCompare(a.name, b.name); }); + namespacesList.sort(function(a, b) { + return operatorCompare(a.name, b.name); + }); errSetsList.sort(function(a, b) { return operatorCompare(a.name, b.name); }); @@ -680,6 +697,17 @@ } domSectTypes.classList.remove("hidden"); } + if (namespacesList.length !== 0) { + resizeDomList(domListNamespaces, namespacesList.length, '<li><a href="#"></a></li>'); + for (var i = 0; i < namespacesList.length; i += 1) { + var liDom = domListNamespaces.children[i]; + var aDom = liDom.children[0]; + var decl = namespacesList[i]; + aDom.textContent = decl.name; + aDom.setAttribute('href', navLinkDecl(decl.name)); + } + domSectNamespaces.classList.remove("hidden"); + } if (errSetsList.length !== 0) { resizeDomList(domListErrSets, errSetsList.length, '<li><a href="#"></a></li>'); @@ -816,6 +844,8 @@ typeKindErrSetId = i; } else if (zigAnalysis.typeKinds[i] === "ErrorUnion") { typeKindErrUnionId = i; + } else if (zigAnalysis.typeKinds[i] === "Struct") { + typeKindStructId = i; } } if (typeKindTypeId == null) { @@ -848,6 +878,9 @@ if (typeKindErrUnionId == null) { throw new Error("No type kind 'ErrorUnion' found"); } + if (typeKindStructId == null) { + throw new Error("No type kind 'Struct' found"); + } } function findTypeTypeId() { |
