mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-11 00:14:56 +03:00
23d2cb42de
Targeted follow-ups к round-trip фиксу: * modify-field больше не теряет <valueType> при перестройке поля — Read-FieldProperties сохраняет полный OuterXml элемента (StringQualifiers, NumberQualifiers, DateQualifiers и т.п.), Build-FieldFragment отдаёт его обратно. Лишние xmlns-декларации, добавляемые сериализатором при выгрузке поддерева, стрипаются регексом. * Line-ending convention теперь определяется при load (CRLF vs LF) и единообразно применяется в финале save. Раньше CreateWhitespace и Build-*Fragment везде использовали CRLF, что приводило к смешанным переносам в LF-исходниках (и наоборот) и к non-idempotent выходу modify-parameter title (run 1 → \n\t\t<title>\r\n... → run 2 → \r\n\t\t<title>\r\n...). * PS Insert-BeforeElement переведён на LF; все -join "`r`n" → "`n"; py "\r\n".join → "\n". Конечная нормализация переносов делается в save в соответствии со script:LineEnding. * preserve-entities-modify-parameter-title.json теперь idempotent: true (после фикса CRLF leak'а двойной прогон byte-identical). На реальной схеме diff после modify-field составил 30 строк: целевая вставка title плюс полезная одноразовая коррекция ранее повреждённых " в text-content <dcsat:expression>. modify-field идемпотентен. skd-edit v1.19 -> v1.20. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>