added allow-overlap parameter for notes

This commit is contained in:
2025-07-16 17:20:31 +02:00
parent 03138269f9
commit 1f24ba8efe
5 changed files with 37 additions and 10 deletions

View File

@ -126,8 +126,8 @@
"linked",
note.pos == none and note.side != "across"
)
let names = ctx.participants.map(p => p.name)
if note.pos == none and note.side != "across" {
let names = ctx.participants.map(p => p.name)
let i1 = names.position(n => n == ctx.last-seq.p1)
let i2 = names.position(n => n == ctx.last-seq.p2)
let pars = (
@ -150,10 +150,26 @@
n.aligned-with = note
ctx.elmts.at(ctx.last-note.i) = n
}
if note.side == "left" {
ctx.linked.push("[")
} else if note.side == "right" {
ctx.linked.push("]")
if note.side in ("left", "right") {
let i = names.position(n => n == note.pos)
let pos2 = note.pos
if note.side == "left" {
if i <= 0 or note.allow-overlap {
ctx.linked.push("[")
pos2 = "["
} else {
pos2 = names.at(i - 1)
}
} else if note.side == "right" {
if i >= names.len() - 1 or note.allow-overlap {
ctx.linked.push("]")
pos2 = "]"
} else {
pos2 = names.at(i + 1)
}
}
note.insert("pos2", pos2)
}
let pars = none