Commit ca3250a57c

Andrew Kelley <andrew@ziglang.org>
2019-10-09 04:39:12
generated docs: add global variables
See #3409
1 parent cdaaf7c
Changed files (2)
lib
std
special
lib/std/special/docs/index.html
@@ -308,6 +308,11 @@
       <ul id="listTypes">
       </ul>
     </div>
+    <div id="sectGlobalVars" class="hidden">
+      <h2>Global Variables</h2>
+      <div id="listGlobalVars">
+      </div>
+    </div>
     <div id="sectFns" class="hidden">
       <h2>Functions</h2>
       <ul id="listFns">
lib/std/special/docs/main.js
@@ -10,6 +10,8 @@
     var domListFns = document.getElementById("listFns");
     var domSectFields = document.getElementById("sectFields");
     var domListFields = document.getElementById("listFields");
+    var domSectGlobalVars = document.getElementById("sectGlobalVars");
+    var domListGlobalVars = document.getElementById("listGlobalVars");
     var domFnProto = document.getElementById("fnProto");
     var domFnProtoCode = document.getElementById("fnProtoCode");
     var domFnDocs = document.getElementById("fnDocs");
@@ -111,6 +113,7 @@
         domFnNoExamples.classList.add("hidden");
         domFnErrorsAnyError.classList.add("hidden");
         domTableFnErrors.classList.add("hidden");
+        domSectGlobalVars.classList.add("hidden");
 
         renderTitle();
         renderInfo();
@@ -560,8 +563,13 @@
     function renderContainer(container) {
         var typesList = [];
         var fnsList = [];
+        var varsList = [];
         for (var i = 0; i < container.pubDecls.length; i += 1) {
             var decl = zigAnalysis.decls[container.pubDecls[i]];
+            if (decl.kind === 'var') {
+                varsList.push(decl);
+                continue;
+            }
             if (decl.type != null) {
                 if (decl.type == typeTypeId) {
                     typesList.push(decl);
@@ -583,6 +591,9 @@
         fnsList.sort(function(a, b) {
             return operatorCompare(a.name, b.name);
         });
+        varsList.sort(function(a, b) {
+            return operatorCompare(a.name, b.name);
+        });
 
         if (typesList.length !== 0) {
             resizeDomList(domListTypes, typesList.length, '<li><a href="#"></a></li>');
@@ -620,6 +631,27 @@
             }
             domSectFields.classList.remove("hidden");
         }
+
+        if (varsList.length !== 0) {
+            resizeDomList(domListGlobalVars, varsList.length, '<div></div>');
+            for (var i = 0; i < varsList.length; i += 1) {
+                var decl = varsList[i];
+                var divDom = domListGlobalVars.children[i];
+                var innerHtml = "";
+
+                innerHtml += '<pre><span class="tok-kw">pub</span> <span class="tok-kw">var</span> <a href="' +
+                    navLinkDecl(decl.name) + '">' + escapeHtml(decl.name) + '</a>: ' +
+                    typeIndexName(decl.type, true, true) + '</pre>';
+
+                var docs = zigAnalysis.astNodes[decl.src].docs;
+                if (docs != null) {
+                    innerHtml += markdown(docs);
+                }
+
+                divDom.innerHTML = innerHtml;
+            }
+            domSectGlobalVars.classList.remove("hidden");
+        }
     }
 
     function operatorCompare(a, b) {
@@ -917,6 +949,7 @@
                 break;
             case 83:
                 domSearch.focus();
+                domSearch.select();
                 ev.preventDefault();
                 ev.stopPropagation();
                 startAsyncSearch();