docs(mxl): убрать XML-уровень и механику из описания DSL

Продолжение чистки протёкшей реализации.

- «тип заполнения: param → Parameter, text → Text, template → Template» — автор DSL
  ключ fillType не пишет и в выводе mxl-compile его не видит, это имена XML-перечисления.
  Заменено на то, что действительно нужно: содержимое задаётся одним из ключей param /
  text / template, где template — текст со вставками [Параметр]. Раньше синтаксис вставок
  в инструкции не упоминался вовсе, хотя он куда полезнее перечисления. (У mxl-info
  fillType остаётся: там навык объясняет свой собственный вывод.)

- «компилятор создаёт ячейки для ВСЕХ колонок строки» — механика. Оставлен наблюдаемый
  контракт: стиль применяется ко всей ширине строки, оттуда сплошные рамки.

- «заданное имя компилятор разворачивает в именованную область типа строки» — то же самое.
  Теперь сказано, что даёт имя автору: область доступна как ПолучитьОбласть("Имя").

- убран пункт «"|" продолжает ячейку, только если её позиция известна явно». Он ссылался
  на поведение, которого в документации нет (позиция ячеек без col выводится прощающим
  вводом), то есть документированное ограничение опиралось на недокументированную
  механику. Случай закрыт сообщением об ошибке.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-10 18:20:30 +03:00
co-authored by Claude Opus 5
parent 8cae947f4b
commit d002de3a26
3 changed files with 19 additions and 21 deletions
+1 -1
View File
@@ -67,7 +67,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J
- Строку можно писать массивом ячеек — позиция из порядка, `col` не нужен: `"текст"`, `"{Имя}"` — параметр, `">"` — продолжить ячейку слева, `"|"` — сверху, `null` — пропуск колонки - Строку можно писать массивом ячеек — позиция из порядка, `col` не нужен: `"текст"`, `"{Имя}"` — параметр, `">"` — продолжить ячейку слева, `"|"` — сверху, `null` — пропуск колонки
- `col` — 1-based позиция колонки - `col` — 1-based позиция колонки
- `rowspan` — объединение строк вниз (rowStyle учитывает занятые ячейки) - `rowspan` — объединение строк вниз (rowStyle учитывает занятые ячейки)
- Тип заполнения определяется автоматически: `param` → Parameter, `text` → Text, `template` → Template - Содержимое ячейки задаётся одним из ключей: `param` — параметр заполнения, `text` — статический текст, `template` — текст со вставками `[Параметр]`
Двухуровневая шапка массивами: Двухуровневая шапка массивами:
```json ```json
@@ -114,7 +114,7 @@
| `name` | нет | Имя области для `Макет.ПолучитьОбласть("Имя")` | | `name` | нет | Имя области для `Макет.ПолучитьОбласть("Имя")` |
| `rows` | да | Массив строк | | `rows` | да | Массив строк |
Макет собирается из областей — диапазонов подряд идущих строк. Заданное здесь имя компилятор разворачивает в именованную область типа «строки» на диапазон этих строк. **Область без имени** — просто кусок сетки: так описываются строки, не принадлежащие ни одной именованной области. Макет собирается из областей — диапазонов подряд идущих строк. Имя делает область именованной: она доступна в коде как `Макет.ПолучитьОбласть("Имя")` и занимает строки своего диапазона. **Область без имени** — просто кусок сетки: так описываются строки, не принадлежащие ни одной именованной области.
## Именованные области координатами (`namedAreas[]`) ## Именованные области координатами (`namedAreas[]`)
@@ -175,8 +175,7 @@
Ограничения короткой формы: Ограничения короткой формы:
- не задать `height` и `rowStyle` — это свойства строки, а не ячейки; - не задать `height` и `rowStyle` — это свойства строки, а не ячейки;
- не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`; - не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`.
- `"|"` продолжает ячейку из предыдущей строки, только если её позиция известна явно (`col` задан или строка записана массивом).
Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr. Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr.
@@ -193,17 +192,17 @@
| `text` | нет | — | Статический текст | | `text` | нет | — | Статический текст |
| `template` | нет | — | Шаблонный текст с `[Параметр]` | | `template` | нет | — | Шаблонный текст с `[Параметр]` |
### Тип заполнения ### Содержимое ячейки
Определяется автоматически по содержимому ячейки: Задаётся ровно одним из ключей, объявлять способ заполнения отдельно не нужно:
- `param` → fillType=Parameter - `param` — параметр заполнения;
- `template` → fillType=Template - `template` — текст со вставками `[Параметр]`;
- `text` → fillType=Text - `text` — статический текст;
- ничего → без fillType (пустая ячейка или рамка) - ничего — пустая ячейка (нужна, например, ради рамки).
## `rowStyle` — автозаполнение ## `rowStyle` — автозаполнение
Когда задан `rowStyle`, компилятор создаёт ячейки для ВСЕХ колонок строки. Позиции без явных ячеек заполняются пустыми ячейками с указанным стилем. Это обеспечивает сплошные рамки в табличных строках. Стиль применяется ко ВСЕЙ ширине строки: позиции без явных ячеек получают тот же стиль. Так в табличных строках получаются сплошные рамки.
Если в предыдущих строках той же области есть ячейки с `rowspan`, их колонки при автозаполнении пропускаются. Если в предыдущих строках той же области есть ячейки с `rowspan`, их колонки при автозаполнении пропускаются.
+9 -10
View File
@@ -114,7 +114,7 @@
| `name` | нет | Имя области для `Макет.ПолучитьОбласть("Имя")` | | `name` | нет | Имя области для `Макет.ПолучитьОбласть("Имя")` |
| `rows` | да | Массив строк | | `rows` | да | Массив строк |
Макет собирается из областей — диапазонов подряд идущих строк. Заданное здесь имя компилятор разворачивает в именованную область типа «строки» на диапазон этих строк. **Область без имени** — просто кусок сетки: так описываются строки, не принадлежащие ни одной именованной области. Макет собирается из областей — диапазонов подряд идущих строк. Имя делает область именованной: она доступна в коде как `Макет.ПолучитьОбласть("Имя")` и занимает строки своего диапазона. **Область без имени** — просто кусок сетки: так описываются строки, не принадлежащие ни одной именованной области.
## Именованные области координатами (`namedAreas[]`) ## Именованные области координатами (`namedAreas[]`)
@@ -175,8 +175,7 @@
Ограничения короткой формы: Ограничения короткой формы:
- не задать `height` и `rowStyle` — это свойства строки, а не ячейки; - не задать `height` и `rowStyle` — это свойства строки, а не ячейки;
- не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`; - не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`.
- `"|"` продолжает ячейку из предыдущей строки, только если её позиция известна явно (`col` задан или строка записана массивом).
Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr. Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr.
@@ -193,17 +192,17 @@
| `text` | нет | — | Статический текст | | `text` | нет | — | Статический текст |
| `template` | нет | — | Шаблонный текст с `[Параметр]` | | `template` | нет | — | Шаблонный текст с `[Параметр]` |
### Тип заполнения ### Содержимое ячейки
Определяется автоматически по содержимому ячейки: Задаётся ровно одним из ключей, объявлять способ заполнения отдельно не нужно:
- `param` → fillType=Parameter - `param` — параметр заполнения;
- `template` → fillType=Template - `template` — текст со вставками `[Параметр]`;
- `text` → fillType=Text - `text` — статический текст;
- ничего → без fillType (пустая ячейка или рамка) - ничего — пустая ячейка (нужна, например, ради рамки).
## `rowStyle` — автозаполнение ## `rowStyle` — автозаполнение
Когда задан `rowStyle`, компилятор создаёт ячейки для ВСЕХ колонок строки. Позиции без явных ячеек заполняются пустыми ячейками с указанным стилем. Это обеспечивает сплошные рамки в табличных строках. Стиль применяется ко ВСЕЙ ширине строки: позиции без явных ячеек получают тот же стиль. Так в табличных строках получаются сплошные рамки.
Если в предыдущих строках той же области есть ячейки с `rowspan`, их колонки при автозаполнении пропускаются. Если в предыдущих строках той же области есть ячейки с `rowspan`, их колонки при автозаполнении пропускаются.