docs(mxl-compile): позиционный список ячеек работает и с rowStyle

Утверждение «короткой формой не задать height и rowStyle» неверно: проверено
компилятором, позиционный список кладётся в cells и уживается со свойствами
строки, включая маркеры > и |. Это форма записи ЯЧЕЕК, а не строки — так
и сформулировано теперь в инструкции и спецификации.

Строка итога в примере переписана короче, заодно показывает эту форму.
This commit is contained in:
Nick Shirokov
2026-08-17 12:56:05 +03:00
parent 93ced4b239
commit 13d100dff8
2 changed files with 21 additions and 9 deletions
+11 -4
View File
@@ -90,13 +90,13 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J
]} ]}
]}, ]},
{ "name": "Итого", "rows": [ { "name": "Итого", "rows": [
[null, null, null, { "style": "итог", "text": "Итого:" }, { "style": "итог", "param": "Всего" }] { "rowStyle": "итог", "cells": [null, null, null, "Итого:", "{Всего}"] }
]} ]}
] ]
} }
``` ```
Область «Итого» записана короткой формой: позиция берётся из порядка, `col` не нужен. Список ячеек в области «Итого» записан позиционно: позиция берётся из порядка, `col` не нужен.
## Структура DSL ## Структура DSL
@@ -152,7 +152,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J
пустая (нужна, например, ради рамки). Пустая строка `"text": ""` — это тоже текст, а не пустая (нужна, например, ради рамки). Пустая строка `"text": ""` — это тоже текст, а не
отсутствие текста. отсутствие текста.
### Короткая форма: строка массивом ### Короткая форма: список ячеек позиционно
Позиция берётся из порядка, `col` не нужен: Позиция берётся из порядка, `col` не нужен:
@@ -175,7 +175,14 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J
``` ```
Здесь «Вид» и «Итог» объединены по вертикали, «Остаток» — по горизонтали на две колонки. Здесь «Вид» и «Итог» объединены по вертикали, «Остаток» — по горизонтали на две колонки.
Короткой формой не задать `height` и `rowStyle` — это свойства строки.
Позиционный список — это форма записи ЯЧЕЕК, а не строки. Если у строки нет своих свойств, он
и есть строка (как в примере выше). Если нужны `height`, `hidden` или `rowStyle` — тот же
список кладётся в `cells`:
```json
{ "rowStyle": "итог", "cells": [null, null, null, "Итого:", "{Всего}"] }
```
### `rowStyle` — оформление строки ### `rowStyle` — оформление строки
+10 -5
View File
@@ -141,9 +141,11 @@
`height` и `hidden` — собственные свойства строки: у ячейки таких нет, и в её оформление они `height` и `hidden` — собственные свойства строки: у ячейки таких нет, и в её оформление они
не попадают. Всё остальное оформление строки задаётся через `rowStyle`. не попадают. Всё остальное оформление строки задаётся через `rowStyle`.
### Короткая форма: строка массивом ### Короткая форма: список ячеек позиционно
Вместо объекта строка может быть массивом ячеек — позиция определяется порядком, `col` не указывается. Список ячеек можно записывать позиционно — позиция определяется порядком, `col` не указывается.
Если у строки нет своих свойств, такой список и есть строка; если нужны `height`, `hidden`
или `rowStyle` — тот же список кладётся в `cells`.
| Элемент | Значение | | Элемент | Значение |
|---------|----------| |---------|----------|
@@ -170,9 +172,12 @@
``` ```
Здесь «Вид» и «Итог» объединены по вертикали на две строки, «Остаток» — по горизонтали на две колонки. Здесь «Вид» и «Итог» объединены по вертикали на две строки, «Остаток» — по горизонтали на две колонки.
Ограничения короткой формы: ```json
- не задать `height` и `rowStyle` — это свойства строки, а не ячейки; { "rowStyle": "итог", "cells": [null, null, null, "Итого:", "{Всего}"] }
- не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`. ```
Ограничение у формы одно: ею не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном
`"{...}"` — такие ячейки записываются объектом с ключом `text`.
Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr. Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr.