generated docs: better listing of functions

This commit is contained in:
Andrew Kelley 2019-10-10 11:03:16 -04:00
parent b9d63551de
commit 6330dfbea6
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9

View File

@ -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];
var tdFnCode = trDom.children[0];
var tdDesc = trDom.children[1];
tdNameA.setAttribute('href', navLinkDecl(decl.name));
tdNameA.textContent = decl.name;
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) {