| ... | @@ -20,6 +20,8 @@ | ... | @@ -20,6 +20,8 @@ |
| 20 | var domListValues = document.getElementById("listValues"); | 20 | var domListValues = document.getElementById("listValues"); |
| 21 | var domFnProto = document.getElementById("fnProto"); | 21 | var domFnProto = document.getElementById("fnProto"); |
| 22 | var domFnProtoCode = document.getElementById("fnProtoCode"); | 22 | var domFnProtoCode = document.getElementById("fnProtoCode"); |
| | 23 | var domSectParams = document.getElementById("sectParams"); |
| | 24 | var domListParams = document.getElementById("listParams"); |
| 23 | var domTldDocs = document.getElementById("tldDocs"); | 25 | var domTldDocs = document.getElementById("tldDocs"); |
| 24 | var domSectFnErrors = document.getElementById("sectFnErrors"); | 26 | var domSectFnErrors = document.getElementById("sectFnErrors"); |
| 25 | var domListFnErrors = document.getElementById("listFnErrors"); | 27 | var domListFnErrors = document.getElementById("listFnErrors"); |
| ... | @@ -101,6 +103,7 @@ | ... | @@ -101,6 +103,7 @@ |
| 101 | function render() { | 103 | function render() { |
| 102 | domStatus.classList.add("hidden"); | 104 | domStatus.classList.add("hidden"); |
| 103 | domFnProto.classList.add("hidden"); | 105 | domFnProto.classList.add("hidden"); |
| | 106 | domSectParams.classList.add("hidden"); |
| 104 | domTldDocs.classList.add("hidden"); | 107 | domTldDocs.classList.add("hidden"); |
| 105 | domSectPkgs.classList.add("hidden"); | 108 | domSectPkgs.classList.add("hidden"); |
| 106 | domSectTypes.classList.add("hidden"); | 109 | domSectTypes.classList.add("hidden"); |
| ... | @@ -226,6 +229,8 @@ | ... | @@ -226,6 +229,8 @@ |
| 226 | } | 229 | } |
| 227 | | 230 | |
| 228 | var typeObj = zigAnalysis.types[fnDecl.type]; | 231 | var typeObj = zigAnalysis.types[fnDecl.type]; |
| | 232 | renderFnParamDocs(fnDecl, typeObj); |
| | 233 | |
| 229 | var errSetTypeIndex = null; | 234 | var errSetTypeIndex = null; |
| 230 | if (typeObj.ret != null) { | 235 | if (typeObj.ret != null) { |
| 231 | var retType = zigAnalysis.types[typeObj.ret]; | 236 | var retType = zigAnalysis.types[typeObj.ret]; |
| ... | @@ -279,6 +284,58 @@ | ... | @@ -279,6 +284,58 @@ |
| 279 | domFnProto.classList.remove("hidden"); | 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 | function renderNav() { | 339 | function renderNav() { |
| 283 | var len = curNav.pkgNames.length + curNav.declNames.length; | 340 | var len = curNav.pkgNames.length + curNav.declNames.length; |
| 284 | resizeDomList(domListNav, len, '<li><a href="#"></a></li>'); | 341 | resizeDomList(domListNav, len, '<li><a href="#"></a></li>'); |