Commit 6330dfbea6

Andrew Kelley <andrew@ziglang.org>
2019-10-10 17:03:16
generated docs: better listing of functions
1 parent b9d6355
Changed files (1)
lib
std
special
docs
lib/std/special/docs/main.js
@@ -376,24 +376,24 @@
         }
     }
 
-    function typeIndexName(typeIndex, wantHtml, wantLink, fnDecl, skipFnName) {
+    function typeIndexName(typeIndex, wantHtml, wantLink, fnDecl, linkFnNameDecl) {
         var typeObj = zigAnalysis.types[typeIndex];
         if (wantLink) {
             var declIndex = getCanonTypeDecl(typeIndex);
             var declPath = getCanonDeclPath(declIndex);
             var haveLink = declPath != null;
-            var typeNameHtml = typeName(typeObj, true, !haveLink, fnDecl, skipFnName);
+            var typeNameHtml = typeName(typeObj, true, !haveLink, fnDecl, linkFnNameDecl);
             if (haveLink) {
                 return '<a href="' + navLink(declPath.pkgNames, declPath.declNames) + '">' + typeNameHtml + '</a>';
             } else {
                 return typeNameHtml;
             }
         } else {
-            return typeName(typeObj, wantHtml, false, fnDecl, skipFnName);
+            return typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl);
         }
     }
 
-    function typeName(typeObj, wantHtml, wantSubLink, fnDecl, skipFnName) {
+    function typeName(typeObj, wantHtml, wantSubLink, fnDecl, linkFnNameDecl) {
         switch (typeObj.kind) {
             case typeKinds.Array:
                 var name = "[";
@@ -542,8 +542,15 @@
                 var payloadHtml = "";
                 if (wantHtml) {
                     payloadHtml += '<span class="tok-kw">fn</span>';
-                    if (fnDecl != null && !skipFnName) {
-                        payloadHtml += ' <span class="tok-fn">' + escapeHtml(fnDecl.name) + '</span>';
+                    if (fnDecl != null) {
+                        payloadHtml += ' <span class="tok-fn">';
+                        if (linkFnNameDecl != null) {
+                            payloadHtml += '<a href="' + linkFnNameDecl + '">' +
+                                escapeHtml(fnDecl.name) + '</a>';
+                        } else {
+                            payloadHtml += escapeHtml(fnDecl.name);
+                        }
+                        payloadHtml += '</span>';
                     }
                 } else {
                     payloadHtml += 'fn'
@@ -655,7 +662,7 @@
     }
 
     function renderValue(decl) {
-        domFnProtoCode.innerHTML = '<span class="tok-kw">pub</span> <span class="tok-kw">const</span> ' +
+        domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
             escapeHtml(decl.name) + ': ' + typeIndexName(decl.type, true, true);
 
         var docs = zigAnalysis.astNodes[decl.src].docs;
@@ -668,7 +675,7 @@
     }
 
     function renderVar(decl) {
-        domFnProtoCode.innerHTML = '<span class="tok-kw">pub</span> <span class="tok-kw">var</span> ' +
+        domFnProtoCode.innerHTML = '<span class="tok-kw">var</span> ' +
             escapeHtml(decl.name) + ': ' + typeIndexName(decl.type, true, true);
 
         var docs = zigAnalysis.astNodes[decl.src].docs;
@@ -758,21 +765,15 @@
         }
 
         if (fnsList.length !== 0) {
-            resizeDomList(domListFns, fnsList.length,
-                '<tr><td><a href="#"></a></td><td></td><td></td></tr>');
+            resizeDomList(domListFns, fnsList.length, '<tr><td></td><td></td></tr>');
             for (var i = 0; i < fnsList.length; i += 1) {
                 var decl = fnsList[i];
                 var trDom = domListFns.children[i];
 
-                var tdName = trDom.children[0];
-                var tdNameA = tdName.children[0];
-                var tdType = trDom.children[1];
-                var tdDesc = trDom.children[2];
-
-                tdNameA.setAttribute('href', navLinkDecl(decl.name));
-                tdNameA.textContent = decl.name;
+                var tdFnCode = trDom.children[0];
+                var tdDesc = trDom.children[1];
 
-                tdType.innerHTML = typeIndexName(decl.type, true, true, decl, true);
+                tdFnCode.innerHTML = typeIndexName(decl.type, true, true, decl, navLinkDecl(decl.name));
 
                 var docs = zigAnalysis.astNodes[decl.src].docs;
                 if (docs != null) {