mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-19 17:19:42 +03:00
fix(skd-edit): preserve <valueType>, detect line endings, drop CRLF leak
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>
This commit is contained in:
@@ -5,5 +5,6 @@
|
||||
"templatePath": "Template.xml",
|
||||
"operation": "modify-parameter",
|
||||
"value": "Период [Новый период]"
|
||||
}
|
||||
},
|
||||
"idempotent": true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user