mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-09 21:13:22 +03:00
refactor(эмиттеры): копии канон-writer'а приведены к одному виду
Навыки автономны, общей библиотеки нет — значит копии функции записи должны быть буквально одинаковыми, иначе теряется смысл копипасты. PS-порт дисциплину держал (7 копий байт-в-байт), а py разъехались: три варианта имени параметра, два стиля кавычек, у cfe-borrow ещё и другое имя функции (save_xml_file). Сведено к одной форме: имя write_xml_file, параметр content, одинаковое тело. Различаются ровно две вещи, и обе осмысленные: вызов локального базового writer'а (имена исторические — write_utf8_bom / write_text_with_bom / save_text_bom) и одна строка примечания там, где у навыка есть исключение (модуль .bsl, HTML). Текст комментария в PS выровнен с docstring'ом py: раньше он описывал ПРИЧИНУ (here-string наследует LF), а не правило, и после правки py ports разъехались по смыслу. Синтаксис остаётся разным по природе языков: в py docstring (в портах их 421 против 73 функций с #-комментарием — это местная норма), в PS — #. Windows 641/641 обоими портами. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
d05c91be03
commit
67185657c1
@@ -15,12 +15,15 @@ def write_utf8_bom(path, content):
|
||||
f.write(content)
|
||||
|
||||
def write_xml_file(path, content):
|
||||
# Канон выгрузки Конфигуратора: CRLF в разделителях строк, без перевода в конце
|
||||
# файла. Скелет собирается тройными кавычками, а .py хранится с LF — отсюда LF и
|
||||
# смешанный EOL. Нормализация здесь безопасна: многострочных текстовых узлов в
|
||||
# скелете нет. Модули .bsl и текстовые макеты через неё НЕ пишутся.
|
||||
"""XML в каноне выгрузки Конфигуратора: CRLF в разделителях, без перевода в конце.
|
||||
|
||||
Копия этой функции есть в каждом навыке-эмиттере (навыки автономны). Держать
|
||||
копии одинаковыми — сознательно: разошедшиеся копии сводят на нет весь смысл.
|
||||
"""
|
||||
text = content.replace('\r\n', '\n').replace('\n', '\r\n').rstrip('\r\n')
|
||||
write_utf8_bom(path, text)
|
||||
|
||||
|
||||
def main():
|
||||
sys.stdout.reconfigure(encoding="utf-8")
|
||||
sys.stderr.reconfigure(encoding="utf-8")
|
||||
|
||||
Reference in New Issue
Block a user