Commit 19c2474b34

Andrew Kelley <andrew@ziglang.org>
2019-10-05 22:18:26
generated docs: render functions
1 parent a82c645
Changed files (2)
lib
std
special
lib/std/special/doc/index.html
@@ -14,6 +14,12 @@
         a {
             color: #2A6286;
         }
+        pre{
+            font-family:"Source Code Pro",monospace;
+            font-size:1em;
+            background-color:#F5F5F5;
+            padding:1em;
+        }
         #listNav {
             list-style-type: none;
             margin: 0;
@@ -46,12 +52,18 @@
             a {
                 color: #88f;
             }
+            pre{
+                background-color:#2A2A2A;
+            }
         }
     </style>
   </head>
   <body>
-    <div id="sectNav"><ul id="listNav"></ul></div>
     <p id="status">Loading...</p>
+    <div id="sectNav" class="hidden"><ul id="listNav"></ul></div>
+    <div id="fnProto" class="hidden">
+      <pre id="fnProtoCode"></pre>
+    </div>
     <div id="sectPkgs" class="hidden">
         <h2>Packages</h2>
         <ul id="listPkgs">
lib/std/special/doc/main.js
@@ -8,6 +8,8 @@
     var domListTypes = document.getElementById("listTypes");
     var domSectFns = document.getElementById("sectFns");
     var domListFns = document.getElementById("listFns");
+    var domFnProto = document.getElementById("fnProto");
+    var domFnProtoCode = document.getElementById("fnProtoCode");
 
     var typeKindTypeId;
     var typeKindFnId;
@@ -47,6 +49,7 @@
 
     function render() {
         domStatus.classList.add("hidden");
+        domFnProto.classList.add("hidden");
 
         renderTitle();
 
@@ -89,11 +92,28 @@
         var lastDecl = curNav.declObjs[curNav.declObjs.length - 1];
         if (lastDecl.decls != null) {
             return renderContainer(lastDecl);
-        } else {
+        } else if (lastDecl.type != null) {
+            var typeObj = zigAnalysis.types[lastDecl.type];
+            if (typeObj.kind === typeKindFnId) {
+                return renderFn(lastDecl);
+            }
             throw new Error("docs for this decl which is not a container");
+        } else {
+            throw new Error("docs for this decl which is a type");
         }
     }
 
+    function renderFn(fnDecl) {
+        domSectPkgs.classList.add("hidden");
+        domSectTypes.classList.add("hidden");
+        domSectFns.classList.add("hidden");
+
+        var typeObj = zigAnalysis.types[fnDecl.type];
+        domFnProtoCode.textContent = "fn " + fnDecl.name + typeObj.name.substring(2);
+
+        domFnProto.classList.remove("hidden");
+    }
+
     function renderNav() {
         var len = curNav.pkgNames.length + curNav.declNames.length;
         resizeDomList(domListNav, len, '<li><a href="#"></a></li>');
@@ -126,6 +146,8 @@
                 aDom.classList.remove("active");
             }
         }
+
+        domSectNav.classList.remove("hidden");
     }
 
     function render404() {
@@ -134,6 +156,7 @@
         domSectPkgs.classList.add("hidden");
         domSectTypes.classList.add("hidden");
         domSectFns.classList.add("hidden");
+        domFnProto.classList.add("hidden");
     }
 
     function renderPkgList(pkg) {