Спецификация форматирования кода YaoXiang
В данном документе определены правила поведения инструмента форматирования кода yaoxiang fmt. Все операции форматирования должны соответствовать данной спецификации.
Оглавление
- Принципы
- Область применения
- Правила форматирования
- Параметры конфигурации
- Сохранение комментариев
- Обработка ошибок
- Использование командной строки
Принципы
Принцип 1: Форматирование идемпотентно. При повторном форматировании уже отформатированного кода вывод должен полностью совпадать с вводом.
// Правило: format(format(code)) == format(code)
assert_eq!(format_source(input, &opts), format_source(&format_source(input, &opts).unwrap(), &opts).unwrap());Принцип 2: Форматирование не изменяет семантику. Код до и после форматирования должен иметь одинаковое AST (абстрактное синтаксическое дерево).
Принцип 3: Форматирование сохраняет все комментарии. Однострочные комментарии, многострочные комментарии и документирующие комментарии должны быть сохранены без удаления или изменения.
Принцип 4: Приоритет конфигурации. Цепочка приоритетов конфигурации: параметры CLI > конфигурация уровня проекта (yaoxiang.toml) > конфигурация уровня пользователя (~/.config/yaoxiang/config.toml) > значения по умолчанию.
Область применения
Данная спецификация применяется к форматированию всех исходных файлов .yx.
