From a0a1178694be3ebbdad87e54a1b5db6ca954d106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=27vesim=27=20Kuli=C5=84ski?= Date: Mon, 8 Aug 2022 21:42:38 +0200 Subject: [PATCH 1/3] autodoc: links to source code --- lib/docs/main.js | 9 +++++++-- src/Autodoc.zig | 12 ++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/docs/main.js b/lib/docs/main.js index f171326b2e..717aeb4d7f 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -51,6 +51,7 @@ var zigAnalysis; const domHdrName = document.getElementById("hdrName"); const domHelpModal = document.getElementById("helpModal"); const domSearchPlaceholder = document.getElementById("searchPlaceholder"); + const sourceFileUrlTemplate = "https://github.com/ziglang/zig/blob/master/lib/std/{{file}}#L{{line}}" let searchTimer = null; let searchTrimResults = true; @@ -2260,6 +2261,11 @@ var zigAnalysis; } } } + function renderSourceFileLink(decl) { + let srcNode = zigAnalysis.astNodes[decl.src]; + + return "[src]"; + } function renderContainer(container) { let typesList = []; @@ -2378,13 +2384,12 @@ var zigAnalysis; let declType = resolveValue(decl.value); console.assert("type" in declType.expr); - tdFnCode.innerHTML = exprName(declType.expr, { wantHtml: true, wantLink: true, fnDecl: decl, linkFnNameDecl: navLinkDecl(decl.name), - }); + }) + renderSourceFileLink(decl); let docs = zigAnalysis.astNodes[decl.src].docs; if (docs != null) { diff --git a/src/Autodoc.zig b/src/Autodoc.zig index c2b0359c64..5e0848b60f 100644 --- a/src/Autodoc.zig +++ b/src/Autodoc.zig @@ -2808,8 +2808,8 @@ fn walkDecls( const ast_node_index = idx: { const idx = self.ast_nodes.items.len; try self.ast_nodes.append(self.arena, .{ - .file = 0, - .line = line, + .file = self.files.getIndex(file) orelse unreachable, + .line = line, // TODO: calculate absolute line .col = 0, .docs = doc_comment, .fields = null, // walkInstruction will fill `fields` if necessary @@ -3886,13 +3886,13 @@ fn cteTodo(self: *Autodoc, msg: []const u8) error{OutOfMemory}!DocData.WalkResul } fn writeFileTableToJson(map: std.AutoArrayHashMapUnmanaged(*File, usize), jsw: anytype) !void { - try jsw.beginObject(); + try jsw.beginArray(); var it = map.iterator(); while (it.next()) |entry| { - try jsw.objectField(entry.key_ptr.*.sub_file_path); - try jsw.emitNumber(entry.value_ptr.*); + try jsw.arrayElem(); + try jsw.emitString(entry.key_ptr.*.sub_file_path); } - try jsw.endObject(); + try jsw.endArray(); } fn writePackageTableToJson( From 0a0b3dda03fc26dd2b3fdef1c66401cc182f5409 Mon Sep 17 00:00:00 2001 From: Loris Cro Date: Tue, 16 Aug 2022 16:19:54 +0200 Subject: [PATCH 2/3] autodoc: remove reference to github, replace with placeholder link --- lib/docs/main.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/docs/main.js b/lib/docs/main.js index 717aeb4d7f..c08378f5f3 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -51,7 +51,7 @@ var zigAnalysis; const domHdrName = document.getElementById("hdrName"); const domHelpModal = document.getElementById("helpModal"); const domSearchPlaceholder = document.getElementById("searchPlaceholder"); - const sourceFileUrlTemplate = "https://github.com/ziglang/zig/blob/master/lib/std/{{file}}#L{{line}}" + const sourceFileUrlTemplate = "/src-viewer/{{file}}#L{{line}}" let searchTimer = null; let searchTrimResults = true; @@ -974,7 +974,7 @@ var zigAnalysis; "switch(" + cond + ") {" + - ' Date: Tue, 16 Aug 2022 16:51:32 +0200 Subject: [PATCH 3/3] autodoc: absolute line numbers in decl [src] links --- lib/docs/main.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/docs/main.js b/lib/docs/main.js index c08378f5f3..a5ddb3b6fb 100644 --- a/lib/docs/main.js +++ b/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 "[src]"; + return "[src]"; } function renderContainer(container) {