Skip to content

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

Данный документ определяет спецификацию поведения инструмента форматирования кода yx format. Всё форматирование должно соответствовать настоящей спецификации.


Содержание ​


Принципы ​

Принцип 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.