Files
cc-1c-skills/tests/skills/cases/cfe-patch-method/region-reuse.json
T
Nick ShirokovandClaude Opus 4.8 a125464caa feat(cfe-patch-method): source-aware перехватчик + ресинк ИзменениеИКонтроль
Навык переписан в v2.0: вместо шаблона-заглушки читает оригинал метода из
конфигурации-источника и генерирует корректный каркас.

Генерация:
- новый -ConfigPath (опционален, если ModulePath — путь к файлу .bsl модуля);
- наследование директивы контекста, полной сигнатуры, обрамляющих #Если и
  #Область (в исходном порядке; регион переиспользуется, если уже есть);
- тип Instead (&Вместо с ПродолжитьВызов); гвард: Before/After только для процедур;
- ModAndControl копирует всё тело оригинала;
- воздух (пустые строки) вокруг структурных границ и между методами;
- имя с суффиксом типа только при коллизии;
- убраны -Context/-IsFunction (выводятся из оригинала).

Актуализация (повторный ModAndControl): предок восстанавливается из маркеров,
однозначные правки #Вставка/#Удаление переносятся авто, спорные — [РЕСИНК-КОНФЛИКТ]
плюс файлы-версии v1/v2/current/diff. Статусы АКТУАЛЕН/АКТУАЛИЗИРОВАН/ЧАСТИЧНО.

Паритет ps1<->py (raw-кириллица в .py). Тесты: 12 кейсов, оба рантайма зелёные.
runner.mjs: шаг writeFile теперь делает mkdir -p.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 16:31:53 +03:00

38 lines
1.6 KiB
JSON

{
"name": "Вставка в существующий регион с воздухом между методами",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": { "type": "CommonModule", "name": "РеюзМод", "properties": { "Server": true } },
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"writeFile": {
"path": "CommonModules/РеюзМод/Ext/Module.bsl",
"content": "#Область ПрограммныйИнтерфейс\n\nПроцедура МетодБ(Х) Экспорт\n\tСообщить(Х);\nКонецПроцедуры\n\n#КонецОбласти\n"
}
},
{
"script": "cfe-init/scripts/cfe-init",
"args": { "-Name": "Тест", "-OutputDir": "{workDir}/ext", "-ConfigPath": "{workDir}" }
},
{
"script": "cfe-borrow/scripts/cfe-borrow",
"args": { "-ExtensionPath": "{workDir}/ext", "-ConfigPath": "{workDir}", "-Object": "CommonModule.РеюзМод" }
},
{
"writeFile": {
"path": "ext/CommonModules/РеюзМод/Ext/Module.bsl",
"content": "#Область ПрограммныйИнтерфейс\n\n&Перед(\"МетодА\")\nПроцедура Тест_МетодА(П)\n\t// уже есть\nКонецПроцедуры\n\n#КонецОбласти\n"
}
}
],
"params": {
"extensionPath": "ext",
"modulePath": "CommonModule.РеюзМод",
"methodName": "МетодБ",
"interceptorType": "Before"
},
"expect": { "stdoutContains": "в существующий регион" }
}