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
+9 -10
View File
@@ -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`, их колонки при автозаполнении пропускаются.