🎃

rustfmtメモ [blessed.rsシリーズ4]

2024/04/24に公開

概要

https://blessed.rs/crates

こちらのリストにあるものを見て書いたメモの共有です。

内容はまとめておらず、順番もぐちゃぐちゃ。あくまでメモになります。

また、網羅的にメモしているわけではなく、自分が必要だと思ったもののみメモしているため、内容が偏っているかもしれません。

今回はrustfmtについてです。

rustfmtとは

Rustコードをスタイルガイドラインに従ってフォーマットするツール

github

https://github.com/rust-lang/rustfmt

contributing

https://github.com/rust-lang/rustfmt/blob/master/Contributing.md

コントリビュートしたいときはこちらを参照

使い方

https://github.com/rust-lang/rustfmt?tab=readme-ov-file#quick-start

インストールしていれば以下で実行

$ cargo fmt

インストール方法などは上記のリンクより

修正を行わないモード

デフォルトではcargo fmtで修正まで行うが、--checkをつけることで、修正を行わず、修正内容を教えてくれるようになる。

また、このときエラー扱いになるため、CIなどで使用する場合は--checkをつけるのがいいかもしれない

all

--allをつけることで以下のようになる。

Format all packages, and also their local path-based dependencies

しかし、詳しい範囲までは調べていない。

Config

https://rust-lang.github.io/rustfmt/?version=master&search=

rustfmt.tomlで設定できる

内容については上記を参照

Rust Style Guide

https://doc.rust-lang.org/nightly/style-guide/

Rustスタイルガイドでは、デフォルトのRustスタイルを定義している。

rustfmtを無視したい場合

rustfmtを無視したい場合は#[rustfmt::skip]をつける

マクロや属性のrustfmtを防ぐためには、#[rustfmt::skip::macros(target_macro_name)]#[rustfmt::skip::attributes(target_attribute_name)]を使用する

参考になる記事

Discussion