Files
cc-1c-skills/tests/skills/cases/cfe-patch-method/transferred-blankskew.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.7 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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\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#Вставка\n\tБ();\n#КонецВставки\n\tВ();\nКонецПроцедуры\n#КонецОбласти\n"
}
}
],
"params": {
"extensionPath": "ext",
"modulePath": "CommonModule.ПрозрМод",
"methodName": "П",
"interceptorType": "ModificationAndControl"
},
"expect": { "stdoutContains": "ПЕРЕНЕСЕНО В ОСНОВНУЮ" }
}