generated docs: add global variables

See #3409
This commit is contained in:
Andrew Kelley 2019-10-08 22:39:12 -04:00
parent cdaaf7c725
commit ca3250a57c
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9
2 changed files with 38 additions and 0 deletions

View File

@ -308,6 +308,11 @@
<ul id="listTypes"> <ul id="listTypes">
</ul> </ul>
</div> </div>
<div id="sectGlobalVars" class="hidden">
<h2>Global Variables</h2>
<div id="listGlobalVars">
</div>
</div>
<div id="sectFns" class="hidden"> <div id="sectFns" class="hidden">
<h2>Functions</h2> <h2>Functions</h2>
<ul id="listFns"> <ul id="listFns">

View File

@ -10,6 +10,8 @@
var domListFns = document.getElementById("listFns"); var domListFns = document.getElementById("listFns");
var domSectFields = document.getElementById("sectFields"); var domSectFields = document.getElementById("sectFields");
var domListFields = document.getElementById("listFields"); var domListFields = document.getElementById("listFields");
var domSectGlobalVars = document.getElementById("sectGlobalVars");
var domListGlobalVars = document.getElementById("listGlobalVars");
var domFnProto = document.getElementById("fnProto"); var domFnProto = document.getElementById("fnProto");
var domFnProtoCode = document.getElementById("fnProtoCode"); var domFnProtoCode = document.getElementById("fnProtoCode");
var domFnDocs = document.getElementById("fnDocs"); var domFnDocs = document.getElementById("fnDocs");
@ -111,6 +113,7 @@
domFnNoExamples.classList.add("hidden"); domFnNoExamples.classList.add("hidden");
domFnErrorsAnyError.classList.add("hidden"); domFnErrorsAnyError.classList.add("hidden");
domTableFnErrors.classList.add("hidden"); domTableFnErrors.classList.add("hidden");
domSectGlobalVars.classList.add("hidden");
renderTitle(); renderTitle();
renderInfo(); renderInfo();
@ -560,8 +563,13 @@
function renderContainer(container) { function renderContainer(container) {
var typesList = []; var typesList = [];
var fnsList = []; var fnsList = [];
var varsList = [];
for (var i = 0; i < container.pubDecls.length; i += 1) { for (var i = 0; i < container.pubDecls.length; i += 1) {
var decl = zigAnalysis.decls[container.pubDecls[i]]; var decl = zigAnalysis.decls[container.pubDecls[i]];
if (decl.kind === 'var') {
varsList.push(decl);
continue;
}
if (decl.type != null) { if (decl.type != null) {
if (decl.type == typeTypeId) { if (decl.type == typeTypeId) {
typesList.push(decl); typesList.push(decl);
@ -583,6 +591,9 @@
fnsList.sort(function(a, b) { fnsList.sort(function(a, b) {
return operatorCompare(a.name, b.name); return operatorCompare(a.name, b.name);
}); });
varsList.sort(function(a, b) {
return operatorCompare(a.name, b.name);
});
if (typesList.length !== 0) { if (typesList.length !== 0) {
resizeDomList(domListTypes, typesList.length, '<li><a href="#"></a></li>'); resizeDomList(domListTypes, typesList.length, '<li><a href="#"></a></li>');
@ -620,6 +631,27 @@
} }
domSectFields.classList.remove("hidden"); 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) { function operatorCompare(a, b) {
@ -917,6 +949,7 @@
break; break;
case 83: case 83:
domSearch.focus(); domSearch.focus();
domSearch.select();
ev.preventDefault(); ev.preventDefault();
ev.stopPropagation(); ev.stopPropagation();
startAsyncSearch(); startAsyncSearch();