Variables: a text value on threaded type replaces the whole story

Applying a data set wrote a text value into the bound frame only, and the
thread's reflow then joined it with the other frames' old text. The art no
longer matched the row it had just applied, a captured row applied back lost
text, and a value bound to a later frame deleted the rest of the story.

- A text value bound to any frame of threaded text replaces the whole story,
  which then flows through the frames again. `overflow` names the story's
  last frame.
- Capture Data Set, Update Data Set and the Variables panel's match check
  read such a frame as the whole story, frames joined in thread order.
- When any frame of the story is locked, the text value is skipped and
  counted in `skipped`, and the story is not read.
- Two text variables bound in one story apply in definition order, as for
  two on one object: the one defined last wins.

Docs: docs/mcp.md.
This commit is contained in:
dotCooCoo
2026-11-01 08:58:35 -08:00
parent 05d5f99fd7
commit be20929877
5 changed files with 203 additions and 14 deletions
+7
View File
@@ -1747,6 +1747,13 @@ layer is shown again, its type holds the data set's text. They apply the values
defined. Of two variables of the same kind on one object, the one defined last wins. `dataset.list`,
`dataset.capture` and `dataset.update` read hidden objects and objects inside a hidden layer or group as well.
A text value bound to any frame of threaded text replaces the whole story, and the text flows through the frames
again; `overflow` names the story's last frame when the text does not fit. `dataset.capture`, `dataset.update` and
`dataset.list` read such a frame as the whole story, every frame's text joined in thread order. When any frame of
the story is locked or inside a locked layer or group, the text value is skipped and counted in `skipped`, and the
story is not read. Two text variables
bound in one story apply in the order they are defined, and the one defined last wins.
```json
{"name":"run_command","arguments":{"command":"symbol.list","params":{}}}
{"name":"run_command","arguments":{"command":"brush.list","params":{}}}