| ... | @@ -51,8 +51,10 @@ var zigAnalysis; | ... | @@ -51,8 +51,10 @@ var zigAnalysis; |
| 51 | const domHdrName = document.getElementById("hdrName"); | 51 | const domHdrName = document.getElementById("hdrName"); |
| 52 | const domHelpModal = document.getElementById("helpModal"); | 52 | const domHelpModal = document.getElementById("helpModal"); |
| 53 | const domSearchPlaceholder = document.getElementById("searchPlaceholder"); | 53 | const domSearchPlaceholder = document.getElementById("searchPlaceholder"); |
| | 54 | const sourceFileUrlTemplate = "/src-viewer/{{file}}#L{{line}}" |
| 54 | const domLangRefLink = document.getElementById("langRefLink"); | 55 | const domLangRefLink = document.getElementById("langRefLink"); |
| 55 | | 56 | |
| | 57 | let lineCounter = 1; |
| 56 | let searchTimer = null; | 58 | let searchTimer = null; |
| 57 | let searchTrimResults = true; | 59 | let searchTrimResults = true; |
| 58 | | 60 | |
| ... | @@ -411,6 +413,8 @@ var zigAnalysis; | ... | @@ -411,6 +413,8 @@ var zigAnalysis; |
| 411 | if (curNavSearch !== "") { | 413 | if (curNavSearch !== "") { |
| 412 | return renderSearch(); | 414 | return renderSearch(); |
| 413 | } | 415 | } |
| | 416 | |
| | 417 | lineCounter = 1; |
| 414 | | 418 | |
| 415 | let rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg]; | 419 | let rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg]; |
| 416 | let pkg = rootPkg; | 420 | let pkg = rootPkg; |
| ... | @@ -441,6 +445,10 @@ var zigAnalysis; | ... | @@ -441,6 +445,10 @@ var zigAnalysis; |
| 441 | } | 445 | } |
| 442 | | 446 | |
| 443 | currentType = childDecl; | 447 | currentType = childDecl; |
| | 448 | if ("src" in currentType) { |
| | 449 | const ast_node = zigAnalysis.astNodes[currentType.src]; |
| | 450 | lineCounter += ast_node.line; |
| | 451 | } |
| 444 | curNav.declObjs.push(currentType); | 452 | curNav.declObjs.push(currentType); |
| 445 | } | 453 | } |
| 446 | | 454 | |
| ... | @@ -981,7 +989,7 @@ var zigAnalysis; | ... | @@ -981,7 +989,7 @@ var zigAnalysis; |
| 981 | "switch(" + | 989 | "switch(" + |
| 982 | cond + | 990 | cond + |
| 983 | ") {" + | 991 | ") {" + |
| 984 | '<a href="https://github.com/ziglang/zig/tree/master/lib/std/' + | 992 | '<a href="/src-viewer/' + |
| 985 | file_name + | 993 | file_name + |
| 986 | "#L" + | 994 | "#L" + |
| 987 | line + | 995 | line + |
| ... | @@ -2268,6 +2276,13 @@ var zigAnalysis; | ... | @@ -2268,6 +2276,13 @@ var zigAnalysis; |
| 2268 | } | 2276 | } |
| 2269 | } | 2277 | } |
| 2270 | } | 2278 | } |
| | 2279 | function renderSourceFileLink(decl) { |
| | 2280 | let srcNode = zigAnalysis.astNodes[decl.src]; |
| | 2281 | |
| | 2282 | return "<a style=\"float: right;\" href=\"" + |
| | 2283 | sourceFileUrlTemplate.replace("{{file}}", |
| | 2284 | zigAnalysis.files[srcNode.file]).replace("{{line}}", lineCounter + srcNode.line) + "\">[src]</a>"; |
| | 2285 | } |
| 2271 | | 2286 | |
| 2272 | function renderContainer(container) { | 2287 | function renderContainer(container) { |
| 2273 | let typesList = []; | 2288 | let typesList = []; |
| ... | @@ -2386,13 +2401,12 @@ var zigAnalysis; | ... | @@ -2386,13 +2401,12 @@ var zigAnalysis; |
| 2386 | | 2401 | |
| 2387 | let declType = resolveValue(decl.value); | 2402 | let declType = resolveValue(decl.value); |
| 2388 | console.assert("type" in declType.expr); | 2403 | console.assert("type" in declType.expr); |
| 2389 | | | |
| 2390 | tdFnCode.innerHTML = exprName(declType.expr, { | 2404 | tdFnCode.innerHTML = exprName(declType.expr, { |
| 2391 | wantHtml: true, | 2405 | wantHtml: true, |
| 2392 | wantLink: true, | 2406 | wantLink: true, |
| 2393 | fnDecl: decl, | 2407 | fnDecl: decl, |
| 2394 | linkFnNameDecl: navLinkDecl(decl.name), | 2408 | linkFnNameDecl: navLinkDecl(decl.name), |
| 2395 | }); | 2409 | }) + renderSourceFileLink(decl); |
| 2396 | | 2410 | |
| 2397 | let docs = zigAnalysis.astNodes[decl.src].docs; | 2411 | let docs = zigAnalysis.astNodes[decl.src].docs; |
| 2398 | if (docs != null) { | 2412 | if (docs != null) { |