Commit 5929da37a1

Loris Cro <kappaloris@gmail.com>
2022-08-16 16:51:32
autodoc: absolute line numbers in decl [src] links
1 parent 0a0b3dd
Changed files (1)
lib
docs
lib/docs/main.js
@@ -53,6 +53,7 @@ var zigAnalysis;
   const domSearchPlaceholder = document.getElementById("searchPlaceholder");
   const sourceFileUrlTemplate = "/src-viewer/{{file}}#L{{line}}"
 
+  let lineCounter = 1;
   let searchTimer = null;
   let searchTrimResults = true;
 
@@ -404,6 +405,8 @@ var zigAnalysis;
     if (curNavSearch !== "") {
       return renderSearch();
     }
+    
+    lineCounter = 1;
 
     let rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg];
     let pkg = rootPkg;
@@ -434,6 +437,10 @@ var zigAnalysis;
       }
 
       currentType = childDecl;
+      if ("src" in currentType) {
+        const ast_node = zigAnalysis.astNodes[currentType.src];
+        lineCounter += ast_node.line; 
+      }
       curNav.declObjs.push(currentType);
     }
 
@@ -2264,7 +2271,9 @@ var zigAnalysis;
   function renderSourceFileLink(decl) {
     let srcNode = zigAnalysis.astNodes[decl.src];
 
-    return  "<a style=\"float: right;\" href=\"" + sourceFileUrlTemplate.replace("{{file}}", zigAnalysis.files[srcNode.file]).replace("{{line}}", srcNode.line) + "\">[src]</a>";
+    return  "<a style=\"float: right;\" href=\"" + 
+      sourceFileUrlTemplate.replace("{{file}}", 
+        zigAnalysis.files[srcNode.file]).replace("{{line}}", lineCounter + srcNode.line) + "\">[src]</a>";
   }
 
   function renderContainer(container) {