Спецификация форматирования кода YaoXiang
Данный документ определяет спецификацию поведения инструмента форматирования кода yx format. Всё форматирование должно соответствовать настоящей спецификации.
Содержание
- Принципы
- Область применения
- Правила форматирования
- Параметры конфигурации
- Сохранение комментариев
- Обработка ошибок
- Использование командной строки
Принципы
Принцип 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.
