mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-23 05:01:01 +03:00
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>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
912128d24f
commit
6318018bc1
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"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": "АКТУАЛИЗИРОВАН" }
|
||||
}
|
||||
Reference in New Issue
Block a user