Commit 71fb4ef8da

Andrew Kelley <andrew@ziglang.org>
2019-10-09 05:33:19
generated docs: separate Error Sets from Types
1 parent 1586f24
Changed files (2)
lib
std
special
lib/std/special/docs/index.html
@@ -330,6 +330,11 @@
       <ul id="listFns">
       </ul>
     </div>
+    <div id="sectErrSets" class="hidden">
+      <h2>Error Sets</h2>
+      <ul id="listErrSets">
+      </ul>
+    </div>
     </section>
     <div id="helpDialog" class="hidden">
       <h1>Keyboard Shortcuts</h1>
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 domSectErrSets = document.getElementById("sectErrSets");
+    var domListErrSets = document.getElementById("listErrSets");
     var domSectFns = document.getElementById("sectFns");
     var domListFns = document.getElementById("listFns");
     var domSectFields = document.getElementById("sectFields");
@@ -101,6 +103,7 @@
         domFnDocs.classList.add("hidden");
         domSectPkgs.classList.add("hidden");
         domSectTypes.classList.add("hidden");
+        domSectErrSets.classList.add("hidden");
         domSectFns.classList.add("hidden");
         domSectFields.classList.add("hidden");
         domSectSearchResults.classList.add("hidden");
@@ -174,6 +177,11 @@
         }
     }
 
+    function typeIsErrSet(typeIndex) {
+        var typeObj = zigAnalysis.types[typeIndex];
+        return typeObj.kind === typeKindErrSetId;
+    }
+
     function typeIsGenericFn(typeIndex) {
         var typeObj = zigAnalysis.types[typeIndex];
         if (typeObj.kind !== typeKindFnId) {
@@ -578,6 +586,7 @@
 
     function renderContainer(container) {
         var typesList = [];
+        var errSetsList = [];
         var fnsList = [];
         var varsList = [];
         for (var i = 0; i < container.pubDecls.length; i += 1) {
@@ -588,7 +597,11 @@
             }
             if (decl.type != null) {
                 if (decl.type == typeTypeId) {
-                    typesList.push(decl);
+                    if (typeIsErrSet(decl.value)) {
+                        errSetsList.push(decl);
+                    } else {
+                        typesList.push(decl);
+                    }
                 } else {
                     var typeKind = zigAnalysis.types[decl.type].kind;
                     if (typeKind === typeKindFnId) {
@@ -604,6 +617,9 @@
         typesList.sort(function(a, b) {
             return operatorCompare(a.name, b.name);
         });
+        errSetsList.sort(function(a, b) {
+            return operatorCompare(a.name, b.name);
+        });
         fnsList.sort(function(a, b) {
             return operatorCompare(a.name, b.name);
         });
@@ -623,6 +639,18 @@
             domSectTypes.classList.remove("hidden");
         }
 
+        if (errSetsList.length !== 0) {
+            resizeDomList(domListErrSets, errSetsList.length, '<li><a href="#"></a></li>');
+            for (var i = 0; i < errSetsList.length; i += 1) {
+                var liDom = domListErrSets.children[i];
+                var aDom = liDom.children[0];
+                var decl = errSetsList[i];
+                aDom.textContent = decl.name;
+                aDom.setAttribute('href', navLinkDecl(decl.name));
+            }
+            domSectErrSets.classList.remove("hidden");
+        }
+
         if (fnsList.length !== 0) {
             resizeDomList(domListFns, fnsList.length, '<li><a href="#"></a></li>');
             for (var i = 0; i < fnsList.length; i += 1) {