diff --git a/.claude/skills/mxl-compile/SKILL.md b/.claude/skills/mxl-compile/SKILL.md index 2dc8ed5e..d8f4e4a0 100644 --- a/.claude/skills/mxl-compile/SKILL.md +++ b/.claude/skills/mxl-compile/SKILL.md @@ -90,13 +90,13 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J ]} ]}, { "name": "Итого", "rows": [ - [null, null, null, { "style": "итог", "text": "Итого:" }, { "style": "итог", "param": "Всего" }] + { "rowStyle": "итог", "cells": [null, null, null, "Итого:", "{Всего}"] } ]} ] } ``` -Область «Итого» записана короткой формой: позиция берётся из порядка, `col` не нужен. +Список ячеек в области «Итого» записан позиционно: позиция берётся из порядка, `col` не нужен. ## Структура DSL @@ -152,7 +152,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J пустая (нужна, например, ради рамки). Пустая строка `"text": ""` — это тоже текст, а не отсутствие текста. -### Короткая форма: строка массивом +### Короткая форма: список ячеек позиционно Позиция берётся из порядка, `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` — оформление строки diff --git a/docs/mxl-dsl-spec.md b/docs/mxl-dsl-spec.md index b8608cfd..71d6cd18 100644 --- a/docs/mxl-dsl-spec.md +++ b/docs/mxl-dsl-spec.md @@ -141,9 +141,11 @@ `height` и `hidden` — собственные свойства строки: у ячейки таких нет, и в её оформление они не попадают. Всё остальное оформление строки задаётся через `rowStyle`. -### Короткая форма: строка массивом +### Короткая форма: список ячеек позиционно -Вместо объекта строка может быть массивом ячеек — позиция определяется порядком, `col` не указывается. +Список ячеек можно записывать позиционно — позиция определяется порядком, `col` не указывается. +Если у строки нет своих свойств, такой список и есть строка; если нужны `height`, `hidden` +или `rowStyle` — тот же список кладётся в `cells`. | Элемент | Значение | |---------|----------| @@ -170,9 +172,12 @@ ``` Здесь «Вид» и «Итог» объединены по вертикали на две строки, «Остаток» — по горизонтали на две колонки. -Ограничения короткой формы: -- не задать `height` и `rowStyle` — это свойства строки, а не ячейки; -- не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`. +```json +{ "rowStyle": "итог", "cells": [null, null, null, "Итого:", "{Всего}"] } +``` + +Ограничение у формы одно: ею не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном +`"{...}"` — такие ячейки записываются объектом с ключом `text`. Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr.