| author | |
| committer | |
| log | 2c5924c59a148335e5025b72a5ba98d765ed771d |
| tree | 8745623c6c43902fd2be5344126862b69fc6334b |
| parent | 5bb8e9cd975ea68c924d04be6608f96b41204b7f |
2 files changed, 31 insertions(+), 2 deletions(-)
lib/docs/main.js+18-1| ... | @@ -1093,6 +1093,23 @@ const NAV_MODES = { | ... | @@ -1093,6 +1093,23 @@ const NAV_MODES = { |
| 1093 | payloadHtml += decl + "[" + start + ".." + end + sentinel + "]"; | 1093 | payloadHtml += decl + "[" + start + ".." + end + sentinel + "]"; |
| 1094 | return payloadHtml; | 1094 | return payloadHtml; |
| 1095 | } | 1095 | } |
| 1096 | case "sliceLength": { | ||
| 1097 | let payloadHtml = ""; | ||
| 1098 | const lhsExpr = zigAnalysis.exprs[expr.sliceLength.lhs]; | ||
| 1099 | const startExpr = zigAnalysis.exprs[expr.sliceLength.start]; | ||
| 1100 | const lenExpr = zigAnalysis.exprs[expr.sliceLength.len]; | ||
| 1101 | let decl = exprName(lhsExpr, opts); | ||
| 1102 | let start = exprName(startExpr, opts); | ||
| 1103 | let len = exprName(lenExpr, opts); | ||
| 1104 | let sentinel = ""; | ||
| 1105 | if (expr.sliceLength["sentinel"]) { | ||
| 1106 | const sentinelExpr = zigAnalysis.exprs[expr.sliceLength.sentinel]; | ||
| 1107 | let sentinel_ = exprName(sentinelExpr, options); | ||
| 1108 | sentinel += " :" + sentinel_; | ||
| 1109 | } | ||
| 1110 | payloadHtml += decl + "[" + start + "..][0.." + len + sentinel + "]"; | ||
| 1111 | return payloadHtml; | ||
| 1112 | } | ||
| 1096 | case "sliceIndex": { | 1113 | case "sliceIndex": { |
| 1097 | const sliceIndex = zigAnalysis.exprs[expr.sliceIndex]; | 1114 | const sliceIndex = zigAnalysis.exprs[expr.sliceIndex]; |
| 1098 | return exprName(sliceIndex, opts, opts); | 1115 | return exprName(sliceIndex, opts, opts); |
| ... | @@ -4850,4 +4867,4 @@ function RadixTree() { | ... | @@ -4850,4 +4867,4 @@ function RadixTree() { |
| 4850 | 4867 | ||
| 4851 | // BUT! | 4868 | // BUT! |
| 4852 | 4869 | ||
| 4853 | // We want to be able to search "Hash", for example! | ||
| \ No newline at end of file | |||
| 4870 | // We want to be able to search "Hash", for example! | ||
src/Autodoc.zig+13-1| ... | @@ -755,6 +755,7 @@ const DocData = struct { | ... | @@ -755,6 +755,7 @@ const DocData = struct { |
| 755 | string: []const u8, // direct value | 755 | string: []const u8, // direct value |
| 756 | sliceIndex: usize, | 756 | sliceIndex: usize, |
| 757 | slice: Slice, | 757 | slice: Slice, |
| 758 | sliceLength: SliceLength, | ||
| 758 | cmpxchgIndex: usize, | 759 | cmpxchgIndex: usize, |
| 759 | cmpxchg: Cmpxchg, | 760 | cmpxchg: Cmpxchg, |
| 760 | builtin: Builtin, | 761 | builtin: Builtin, |
| ... | @@ -791,6 +792,12 @@ const DocData = struct { | ... | @@ -791,6 +792,12 @@ const DocData = struct { |
| 791 | end: ?usize = null, | 792 | end: ?usize = null, |
| 792 | sentinel: ?usize = null, // index in `exprs` | 793 | sentinel: ?usize = null, // index in `exprs` |
| 793 | }; | 794 | }; |
| 795 | const SliceLength = struct { | ||
| 796 | lhs: usize, | ||
| 797 | start: usize, | ||
| 798 | len: usize, | ||
| 799 | sentinel: ?usize = null, | ||
| 800 | }; | ||
| 794 | const Cmpxchg = struct { | 801 | const Cmpxchg = struct { |
| 795 | name: []const u8, | 802 | name: []const u8, |
| 796 | type: usize, | 803 | type: usize, |
| ... | @@ -1337,7 +1344,12 @@ fn walkInstruction( | ... | @@ -1337,7 +1344,12 @@ fn walkInstruction( |
| 1337 | try self.exprs.append(self.arena, sentinel.expr); | 1344 | try self.exprs.append(self.arena, sentinel.expr); |
| 1338 | break :sentinel_index index; | 1345 | break :sentinel_index index; |
| 1339 | } else null; | 1346 | } else null; |
| 1340 | self.exprs.items[slice_index] = .{ .slice = .{ .lhs = lhs_index, .start = start_index, .end = len_index, .sentinel = sentinel_index } }; | 1347 | self.exprs.items[slice_index] = .{ .sliceLength = .{ |
| 1348 | .lhs = lhs_index, | ||
| 1349 | .start = start_index, | ||
| 1350 | .len = len_index, | ||
| 1351 | .sentinel = sentinel_index, | ||
| 1352 | } }; | ||
| 1341 | 1353 | ||
| 1342 | return DocData.WalkResult{ | 1354 | return DocData.WalkResult{ |
| 1343 | .typeRef = self.decls.items[lhs.expr.declRef.Analyzed].value.typeRef, | 1355 | .typeRef = self.decls.items[lhs.expr.declRef.Analyzed].value.typeRef, |