Skip to content

Спецификация форматирования кода YaoXiang

В данном документе определены правила поведения инструмента форматирования кода yaoxiang fmt. Все операции форматирования должны соответствовать данной спецификации.


Оглавление


Принципы

Принцип 1: Форматирование идемпотентно. При повторном форматировании уже отформатированного кода вывод должен полностью совпадать с вводом.

rust
// Правило: 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.