Commit 137cb32f5e
Changed files (2)
lib
std
special
lib/std/special/docs/index.html
@@ -485,6 +485,10 @@
</p>
</div>
<div id="tldDocs" class="hidden"></div>
+ <div id="sectParams" class="hidden">
+ <h2>Parameters</h2>
+ <div id="listParams"></div>
+ </div>
<div id="sectFnErrors" class="hidden">
<h2>Errors</h2>
<div id="fnErrorsAnyError">
lib/std/special/docs/main.js
@@ -20,6 +20,8 @@
var domListValues = document.getElementById("listValues");
var domFnProto = document.getElementById("fnProto");
var domFnProtoCode = document.getElementById("fnProtoCode");
+ var domSectParams = document.getElementById("sectParams");
+ var domListParams = document.getElementById("listParams");
var domTldDocs = document.getElementById("tldDocs");
var domSectFnErrors = document.getElementById("sectFnErrors");
var domListFnErrors = document.getElementById("listFnErrors");
@@ -101,6 +103,7 @@
function render() {
domStatus.classList.add("hidden");
domFnProto.classList.add("hidden");
+ domSectParams.classList.add("hidden");
domTldDocs.classList.add("hidden");
domSectPkgs.classList.add("hidden");
domSectTypes.classList.add("hidden");
@@ -226,6 +229,8 @@
}
var typeObj = zigAnalysis.types[fnDecl.type];
+ renderFnParamDocs(fnDecl, typeObj);
+
var errSetTypeIndex = null;
if (typeObj.ret != null) {
var retType = zigAnalysis.types[typeObj.ret];
@@ -279,6 +284,58 @@
domFnProto.classList.remove("hidden");
}
+ function renderFnParamDocs(fnDecl, typeObj) {
+ var docCount = 0;
+
+ var fnObj = zigAnalysis.fns[fnDecl.value];
+ var fnNode = zigAnalysis.astNodes[fnObj.src];
+ var fields = fnNode.fields;
+ var isVarArgs = fnNode.varArgs;
+
+ for (var i = 0; i < fields.length; i += 1) {
+ var field = fields[i];
+ var fieldNode = zigAnalysis.astNodes[field];
+ if (fieldNode.docs != null) {
+ docCount += 1;
+ }
+ }
+ if (docCount == 0) {
+ return;
+ }
+
+ resizeDomList(domListParams, docCount, '<div></div>');
+ var domIndex = 0;
+
+ for (var i = 0; i < fields.length; i += 1) {
+ var field = fields[i];
+ var fieldNode = zigAnalysis.astNodes[field];
+ if (fieldNode.docs == null) {
+ continue;
+ }
+ var divDom = domListParams.children[domIndex];
+ domIndex += 1;
+ var argTypeIndex = typeObj.args[i];
+
+ var html = '<pre>' + escapeHtml(fieldNode.name) + ": ";
+ if (isVarArgs && i === typeObj.args.length - 1) {
+ html += '...';
+ } else if (argTypeIndex != null) {
+ html += typeIndexName(argTypeIndex, true, true);
+ } else {
+ html += '<span class="tok-kw">var</span>';
+ }
+
+ html += ',</pre>';
+
+ var docs = fieldNode.docs;
+ if (docs != null) {
+ html += markdown(docs);
+ }
+ divDom.innerHTML = html;
+ }
+ domSectParams.classList.remove("hidden");
+ }
+
function renderNav() {
var len = curNav.pkgNames.length + curNav.declNames.length;
resizeDomList(domListNav, len, '<li><a href="#"></a></li>');