| ... | ... | @@ -20,6 +20,8 @@ |
| 20 | 20 | var domListValues = document.getElementById("listValues"); |
| 21 | 21 | var domFnProto = document.getElementById("fnProto"); |
| 22 | 22 | var domFnProtoCode = document.getElementById("fnProtoCode"); |
| 23 | var domSectParams = document.getElementById("sectParams"); |
| 24 | var domListParams = document.getElementById("listParams"); |
| 23 | 25 | var domTldDocs = document.getElementById("tldDocs"); |
| 24 | 26 | var domSectFnErrors = document.getElementById("sectFnErrors"); |
| 25 | 27 | var domListFnErrors = document.getElementById("listFnErrors"); |
| ... | ... | @@ -101,6 +103,7 @@ |
| 101 | 103 | function render() { |
| 102 | 104 | domStatus.classList.add("hidden"); |
| 103 | 105 | domFnProto.classList.add("hidden"); |
| 106 | domSectParams.classList.add("hidden"); |
| 104 | 107 | domTldDocs.classList.add("hidden"); |
| 105 | 108 | domSectPkgs.classList.add("hidden"); |
| 106 | 109 | domSectTypes.classList.add("hidden"); |
| ... | ... | @@ -226,6 +229,8 @@ |
| 226 | 229 | } |
| 227 | 230 | |
| 228 | 231 | var typeObj = zigAnalysis.types[fnDecl.type]; |
| 232 | renderFnParamDocs(fnDecl, typeObj); |
| 233 | |
| 229 | 234 | var errSetTypeIndex = null; |
| 230 | 235 | if (typeObj.ret != null) { |
| 231 | 236 | var retType = zigAnalysis.types[typeObj.ret]; |
| ... | ... | @@ -279,6 +284,58 @@ |
| 279 | 284 | domFnProto.classList.remove("hidden"); |
| 280 | 285 | } |
| 281 | 286 | |
| 287 | function renderFnParamDocs(fnDecl, typeObj) { |
| 288 | var docCount = 0; |
| 289 | |
| 290 | var fnObj = zigAnalysis.fns[fnDecl.value]; |
| 291 | var fnNode = zigAnalysis.astNodes[fnObj.src]; |
| 292 | var fields = fnNode.fields; |
| 293 | var isVarArgs = fnNode.varArgs; |
| 294 | |
| 295 | for (var i = 0; i < fields.length; i += 1) { |
| 296 | var field = fields[i]; |
| 297 | var fieldNode = zigAnalysis.astNodes[field]; |
| 298 | if (fieldNode.docs != null) { |
| 299 | docCount += 1; |
| 300 | } |
| 301 | } |
| 302 | if (docCount == 0) { |
| 303 | return; |
| 304 | } |
| 305 | |
| 306 | resizeDomList(domListParams, docCount, '<div></div>'); |
| 307 | var domIndex = 0; |
| 308 | |
| 309 | for (var i = 0; i < fields.length; i += 1) { |
| 310 | var field = fields[i]; |
| 311 | var fieldNode = zigAnalysis.astNodes[field]; |
| 312 | if (fieldNode.docs == null) { |
| 313 | continue; |
| 314 | } |
| 315 | var divDom = domListParams.children[domIndex]; |
| 316 | domIndex += 1; |
| 317 | var argTypeIndex = typeObj.args[i]; |
| 318 | |
| 319 | var html = '<pre>' + escapeHtml(fieldNode.name) + ": "; |
| 320 | if (isVarArgs && i === typeObj.args.length - 1) { |
| 321 | html += '...'; |
| 322 | } else if (argTypeIndex != null) { |
| 323 | html += typeIndexName(argTypeIndex, true, true); |
| 324 | } else { |
| 325 | html += '<span class="tok-kw">var</span>'; |
| 326 | } |
| 327 | |
| 328 | html += ',</pre>'; |
| 329 | |
| 330 | var docs = fieldNode.docs; |
| 331 | if (docs != null) { |
| 332 | html += markdown(docs); |
| 333 | } |
| 334 | divDom.innerHTML = html; |
| 335 | } |
| 336 | domSectParams.classList.remove("hidden"); |
| 337 | } |
| 338 | |
| 282 | 339 | function renderNav() { |
| 283 | 340 | var len = curNav.pkgNames.length + curNav.declNames.length; |
| 284 | 341 | resizeDomList(domListNav, len, '<li><a href="#"></a></li>'); |