added all-bit-i config option

This commit is contained in:
Louis Heredero 2024-06-13 12:48:26 +02:00
parent 06f4a2ec5b
commit a51c6a976d
Signed by: HEL
GPG Key ID: 8D83DE470F8544E7
5 changed files with 26 additions and 9 deletions

View File

@ -24,6 +24,7 @@
/// - width (float): TODO -> remove
/// - height (float): TODO -> remove
/// - full-page (bool): If true, the page will be resized to fit the diagram and take the background color
/// - all-bit-i (bool): If true, all bit indices will be rendered, otherwise, only the ends of each range will be displayed
/// -> dictionary
#let config(
default-font-family: "Ubuntu Mono",
@ -49,7 +50,8 @@
left-labels: false,
width: 1200,
height: 800,
full-page: false
full-page: false,
all-bit-i: true
) = {}
/// Dark theme config

Binary file not shown.

Binary file not shown.

View File

@ -22,7 +22,8 @@
left-labels: false,
width: 1200,
height: 800,
full-page: false
full-page: false,
all-bit-i: true
) = {
return (
default-font-family: default-font-family,
@ -48,7 +49,8 @@
left-labels: left-labels,
width: width,
height: height,
full-page: full-page
full-page: full-page,
all-bit-i: all-bit-i
)
}

View File

@ -356,14 +356,27 @@
// Draw rectangle around structure
shapes += draw-rect(border-col, bits-x, bits-y, bits-width, bit-h, thickness: 2)
let indices = range(struct.bits)
if not config.all-bit-i {
indices = ()
for r in struct.ranges.values() {
indices.push(r.start)
indices.push(r.end)
}
}
for i in range(struct.bits) {
let bit-x = ox + i * bit-w
shapes += draw-text(
str(struct.bits - i - 1 + start-bit),
txt-col,
bit-x + bit-w / 2,
oy + bit-h / 2
)
let real-i = struct.bits - i - 1 + start-bit
if real-i in indices {
shapes += draw-text(
str(real-i),
txt-col,
bit-x + bit-w / 2,
oy + bit-h / 2
)
}
// Draw separator
if i != 0 {