diff --git a/.claude/skills/mxl-compile/SKILL.md b/.claude/skills/mxl-compile/SKILL.md index 2c9c32fb..fea42820 100644 --- a/.claude/skills/mxl-compile/SKILL.md +++ b/.claude/skills/mxl-compile/SKILL.md @@ -67,7 +67,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J - Строку можно писать массивом ячеек — позиция из порядка, `col` не нужен: `"текст"`, `"{Имя}"` — параметр, `">"` — продолжить ячейку слева, `"|"` — сверху, `null` — пропуск колонки - `col` — 1-based позиция колонки - `rowspan` — объединение строк вниз (rowStyle учитывает занятые ячейки) -- Тип заполнения определяется автоматически: `param` → Parameter, `text` → Text, `template` → Template +- Содержимое ячейки задаётся одним из ключей: `param` — параметр заполнения, `text` — статический текст, `template` — текст со вставками `[Параметр]` Двухуровневая шапка массивами: ```json diff --git a/.claude/skills/mxl-compile/reference/dsl-spec.md b/.claude/skills/mxl-compile/reference/dsl-spec.md index 64c6ccea..9b5326ef 100644 --- a/.claude/skills/mxl-compile/reference/dsl-spec.md +++ b/.claude/skills/mxl-compile/reference/dsl-spec.md @@ -114,7 +114,7 @@ | `name` | нет | Имя области для `Макет.ПолучитьОбласть("Имя")` | | `rows` | да | Массив строк | -Макет собирается из областей — диапазонов подряд идущих строк. Заданное здесь имя компилятор разворачивает в именованную область типа «строки» на диапазон этих строк. **Область без имени** — просто кусок сетки: так описываются строки, не принадлежащие ни одной именованной области. +Макет собирается из областей — диапазонов подряд идущих строк. Имя делает область именованной: она доступна в коде как `Макет.ПолучитьОбласть("Имя")` и занимает строки своего диапазона. **Область без имени** — просто кусок сетки: так описываются строки, не принадлежащие ни одной именованной области. ## Именованные области координатами (`namedAreas[]`) @@ -175,8 +175,7 @@ Ограничения короткой формы: - не задать `height` и `rowStyle` — это свойства строки, а не ячейки; -- не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`; -- `"|"` продолжает ячейку из предыдущей строки, только если её позиция известна явно (`col` задан или строка записана массивом). +- не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`. Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr. @@ -193,17 +192,17 @@ | `text` | нет | — | Статический текст | | `template` | нет | — | Шаблонный текст с `[Параметр]` | -### Тип заполнения +### Содержимое ячейки -Определяется автоматически по содержимому ячейки: -- `param` → fillType=Parameter -- `template` → fillType=Template -- `text` → fillType=Text -- ничего → без fillType (пустая ячейка или рамка) +Задаётся ровно одним из ключей, объявлять способ заполнения отдельно не нужно: +- `param` — параметр заполнения; +- `template` — текст со вставками `[Параметр]`; +- `text` — статический текст; +- ничего — пустая ячейка (нужна, например, ради рамки). ## `rowStyle` — автозаполнение -Когда задан `rowStyle`, компилятор создаёт ячейки для ВСЕХ колонок строки. Позиции без явных ячеек заполняются пустыми ячейками с указанным стилем. Это обеспечивает сплошные рамки в табличных строках. +Стиль применяется ко ВСЕЙ ширине строки: позиции без явных ячеек получают тот же стиль. Так в табличных строках получаются сплошные рамки. Если в предыдущих строках той же области есть ячейки с `rowspan`, их колонки при автозаполнении пропускаются. diff --git a/docs/mxl-dsl-spec.md b/docs/mxl-dsl-spec.md index f4f63dbf..fc768f7d 100644 --- a/docs/mxl-dsl-spec.md +++ b/docs/mxl-dsl-spec.md @@ -114,7 +114,7 @@ | `name` | нет | Имя области для `Макет.ПолучитьОбласть("Имя")` | | `rows` | да | Массив строк | -Макет собирается из областей — диапазонов подряд идущих строк. Заданное здесь имя компилятор разворачивает в именованную область типа «строки» на диапазон этих строк. **Область без имени** — просто кусок сетки: так описываются строки, не принадлежащие ни одной именованной области. +Макет собирается из областей — диапазонов подряд идущих строк. Имя делает область именованной: она доступна в коде как `Макет.ПолучитьОбласть("Имя")` и занимает строки своего диапазона. **Область без имени** — просто кусок сетки: так описываются строки, не принадлежащие ни одной именованной области. ## Именованные области координатами (`namedAreas[]`) @@ -175,8 +175,7 @@ Ограничения короткой формы: - не задать `height` и `rowStyle` — это свойства строки, а не ячейки; -- не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`; -- `"|"` продолжает ячейку из предыдущей строки, только если её позиция известна явно (`col` задан или строка записана массивом). +- не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`. Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr. @@ -193,17 +192,17 @@ | `text` | нет | — | Статический текст | | `template` | нет | — | Шаблонный текст с `[Параметр]` | -### Тип заполнения +### Содержимое ячейки -Определяется автоматически по содержимому ячейки: -- `param` → fillType=Parameter -- `template` → fillType=Template -- `text` → fillType=Text -- ничего → без fillType (пустая ячейка или рамка) +Задаётся ровно одним из ключей, объявлять способ заполнения отдельно не нужно: +- `param` — параметр заполнения; +- `template` — текст со вставками `[Параметр]`; +- `text` — статический текст; +- ничего — пустая ячейка (нужна, например, ради рамки). ## `rowStyle` — автозаполнение -Когда задан `rowStyle`, компилятор создаёт ячейки для ВСЕХ колонок строки. Позиции без явных ячеек заполняются пустыми ячейками с указанным стилем. Это обеспечивает сплошные рамки в табличных строках. +Стиль применяется ко ВСЕЙ ширине строки: позиции без явных ячеек получают тот же стиль. Так в табличных строках получаются сплошные рамки. Если в предыдущих строках той же области есть ячейки с `rowspan`, их колонки при автозаполнении пропускаются.