cargo fmt
や rustfmt
の整形を微調整する方法について。
以下のコマンドは Rust のソースファイルを自動整形する。
cargo fmt
ワークスペースの全ソースファイルを整形。
rustfmt
ファイル名を指定して整形 (例: rustfmt main.rs
)。
rustfmt.toml
ファイル
整形ルールは rustfmt.toml
ファイルで指定できる。
殆どの場合、デフォルトの整形ルールで問題ないため、このファイルは不要である。しかし、整形ルールをプロジェクトの好みに合わせたい場合、このファイルを導入すると細かな設定が行える。設定項目の詳細は『公式資料』を参照。
以下は rustfmt.toml
ファイルの一例。
# 行の最大文字数を設定。
max_width = 100
# use 文のアルファベット順でのソートを禁止。
reorder_imports = false
# 波括弧は Allman スタイル。
brace_style = "AlwaysNextLine"
#[rustfmt::skip]
属性
ソースの一部のみを手動で整形したい場合、該当部 (ファイル、関数、ブロックまたは文) に rustfmt::skip
属性を付加するとよい。
fn main() {
#[rustfmt::skip]
let xor = |x, y| {
if x && y { "F" } else
if !x && !y { "F" } else
{ "T" }
};
println!("XOR(T, F) = {}", xor(true, false));
}