Step up from a row to the row it links to with ..

This commit is contained in:
2026-10-04 23:56:45 +02:00
committed by Lillem4n
parent 07c66c57fc
commit 8b76d51f2c
6 changed files with 115 additions and 30 deletions
+8 -3
View File
@@ -48,7 +48,12 @@ func descend(s *generatorState, root node, segments []string, sc renderScope) (n
if err != nil {
return nil, err
}
return drawSteps(s, root, steps, &sc.groupDraws().pins, nil, nil), nil
group := sc.groupDraws()
n, pins := drawSteps(s, root, steps, &group.pins, nil, nil)
// A caller's path is its render's first draw, so the rows a step down after a step up drew
// are all the render pins.
group.pins = *pins
return n, nil
}
// renderOnce renders n as one render, over draws of its own.
@@ -209,10 +214,10 @@ func readMemo(s *generatorState, t *template, memo *drawMemo, pins *pinSet, sc r
if r, done := memo.value[a.path]; done {
return r
}
leaf := drawSteps(s, t.head(a.head), a.steps, pins, memo, a.levels)
leaf, leafPins := drawSteps(s, t.head(a.head), a.steps, pins, memo, a.levels)
mark := -1
if pins != nil {
sc, mark = sc.at(leaf, pins).enter(leaf, memo)
sc, mark = sc.at(leaf, leafPins).enter(leaf, memo)
}
r := renderLeaf(s, leaf, sc)
if mark >= 0 {