Files
cc-1c-skills/tests/skills/cases/cfe-patch-method/reanchor-comment-stable.json
T
Nick ShirokovandClaude Opus 4.8 6318018bc1 feat(cfe-patch-method): прозрачность пустых строк и комментариев при ресинке (v2.5)
Косметика вендора (пустые строки, строки-комментарии) больше не ломает классификацию:
- пустая строка между якорем и уже-перенесённым кодом → раньше ДУБЛЬ, теперь ПЕРЕНЕСЕНО;
- пустая/комментарий у якоря → раньше ложный конфликт, теперь переякоривание.

Три шага разведены:
- размещение якоря — сначала точно (комментарии/пустые включены, держит позицию
  вставки относительно стабильного комментария), затем fallback по значимым строкам;
- поглощение — по значимым строкам (пустые/комментарии перешагиваем); вставку из
  одних комментариев/пустых не поглощаем;
- вывод тела — всегда v2 дословно, все комментарии/пустые нового оригинала сохраняются.

Пограничный случай (комментарий разработчика у поглощённого кода): значимый код
поглощаем, осиротевший комментарий — строкой ⚠ в отчёте, не роняя в конфликт.

Новые helper: Test-Significant/Get-SignificantProjection (+ py). Верхняя сверка
АКТУАЛЕН остаётся точной (любой diff → перепись тела в v2). Зеркально ps1↔py,
+3 кейса (blankskew/comment-stable/orphan-comment), 22/22 на обоих рантаймах.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 14:35:56 +03:00

38 lines
1.9 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\t// Проверка лимита\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\tРассчитатьСумму();\n\t// Проверка лимита\n#Вставка\n\tПроверитьЛимит();\n#КонецВставки\n\tЗаписать();\nКонецПроцедуры\n#КонецОбласти\n"
}
}
],
"params": {
"extensionPath": "ext",
"modulePath": "CommonModule.ПрозрМод",
"methodName": "П",
"interceptorType": "ModificationAndControl"
},
"expect": { "stdoutContains": "АКТУАЛИЗИРОВАН" }
}