diff options
| author | Vexu <git@vexu.eu> | 2019-12-04 20:03:44 +0200 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-12-04 14:14:47 -0500 |
| commit | 137cb32f5e586bdd74dcc65b734b54d26080dfee (patch) | |
| tree | 2ebe059f37caf691e43d76f426ecb1544787f434 /lib | |
| parent | 38791ac616069963fd808ec724161b93cbc564c1 (diff) | |
| download | zig-137cb32f5e586bdd74dcc65b734b54d26080dfee.tar.gz zig-137cb32f5e586bdd74dcc65b734b54d26080dfee.zip | |
add docs for function parameters
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/std/special/docs/index.html | 4 | ||||
| -rw-r--r-- | lib/std/special/docs/main.js | 57 |
2 files changed, 61 insertions, 0 deletions
diff --git a/lib/std/special/docs/index.html b/lib/std/special/docs/index.html index b170ad4a14..1046e6cfd9 100644 --- a/lib/std/special/docs/index.html +++ b/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"> diff --git a/lib/std/special/docs/main.js b/lib/std/special/docs/main.js index 1812671227..349f496de0 100644 --- a/lib/std/special/docs/main.js +++ b/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>'); |
