mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-22 02:05:52 +03:00
Семь находок ревью, все подтверждены воспроизведением: 1. Голый менеджер в источниках печатался по-английски: карта объектных видов применялась только к форме с точкой, а meta-compile пишет «cfg:DocumentManager» обычным v8:Type. Восемнадцать добавленных *Manager-записей были недостижимы. Суффикс «(все)» ему не ставится — это сам тип менеджера, а не класс объектов. 2. Новые регулярки прощающего ввода расходились между портами: -replace в PowerShell регистронезависим, re.sub — нет. «ДокументОбъект (Все)» проходил в ps1 и падал в py. Добавлен re.IGNORECASE — это задокументированная ловушка портирования, и она же снова сработала. 3. В шесть py-портов попал BOM (перекодировка при бампе версии), и перед «#!/usr/bin/env python3» он ломает shebang на POSIX. Снят там, где его не было в HEAD; в mxl-compile.py он был изначально и оставлен. 4. Правило со стрелкой из Resolve-TypeStr убрано. form-compile режет тип по [|+] ДО резолвера, поэтому строка глоссария «A -> B | C» молча превращалась в составной тип «A | C» вместо одного A. Половина строки, принятая за тип, — хуже громкого отказа. Остались суффикс «(все)» и счётчик «— типов: N». 5. py-порт meta-info не переиспользовал общий климб до корня конфигурации: правка тогда молча не применилась, и порты разошлись по структуре. 6. Found выставлялся до разбора состава определяемого типа: падение внутри давало «состав пуст» — ложь вместо «файл типа не разобран». 7. Порог сворачивания источников считался по сумме множеств и явных типов, а сворачивались только явные: пять множеств плюс один тип прятали этот тип, а шесть типов без множеств давали «и ещё» после пустоты. Порог теперь по числу явных типов, «и ещё» убрано как ложное. Плюс формы источника подписки описаны в reference самого навыка: раньше они были только в docs/meta-dsl-spec.md, а навык обязан быть самодостаточным. Добавлен кейс на голого менеджера — без него находка 1 вернулась бы незамеченной. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
67 lines
1.6 KiB
JSON
67 lines
1.6 KiB
JSON
{
|
|
"name": "Подписка: голый менеджер в источниках — по-русски и без «(все)»",
|
|
"setup": "empty-config",
|
|
"preRun": [
|
|
{
|
|
"script": "meta-compile/scripts/meta-compile",
|
|
"input": {
|
|
"type": "CommonModule",
|
|
"name": "Обработчики",
|
|
"server": true
|
|
},
|
|
"args": {
|
|
"-JsonPath": "{inputFile}",
|
|
"-OutputDir": "{workDir}"
|
|
}
|
|
},
|
|
{
|
|
"script": "meta-compile/scripts/meta-compile",
|
|
"input": {
|
|
"type": "Document",
|
|
"name": "Заказ"
|
|
},
|
|
"args": {
|
|
"-JsonPath": "{inputFile}",
|
|
"-OutputDir": "{workDir}"
|
|
}
|
|
},
|
|
{
|
|
"script": "meta-compile/scripts/meta-compile",
|
|
"input": {
|
|
"type": "EventSubscription",
|
|
"name": "Менеджеры",
|
|
"event": "BeforeWrite",
|
|
"handler": "Обработчики.ПередЗаписью",
|
|
"source": [
|
|
"DocumentManager",
|
|
"DocumentManager.Заказ",
|
|
"DocumentObject"
|
|
]
|
|
},
|
|
"args": {
|
|
"-JsonPath": "{inputFile}",
|
|
"-OutputDir": "{workDir}"
|
|
}
|
|
}
|
|
],
|
|
"params": {
|
|
"objectPath": "EventSubscriptions/Менеджеры.xml"
|
|
},
|
|
"args_extra": [
|
|
"-Mode",
|
|
"full"
|
|
],
|
|
"expect": {
|
|
"stdoutContains": [
|
|
"Источники (3):",
|
|
" ДокументМенеджер",
|
|
" ДокументМенеджер.Заказ",
|
|
" ДокументОбъект (все)"
|
|
],
|
|
"stdoutNotContains": [
|
|
"DocumentManager",
|
|
"ДокументМенеджер (все)"
|
|
]
|
|
}
|
|
}
|