😀

vimやvscodeでrustfmtによる自動整形が効かないとき

2023/01/31に公開

症状

vimやvscodeでファイル保存時にrustfmtでコードが自動整形されるよう設定しているにも関わらず、コードが整形されなかった。
コマンドは発行されているので、エディタの問題ではなさそうだった

解決策

ログを見ると、以下のように出力されており、rustfmt--edition 2018以上を指定する必要があるようだった。

  |
6 | async fn main() -> Result<(), Error> {
  | ^^^^^ to use `async fn`, switch to Rust 2018 or later
  |
  = help: pass `--edition 2021` to `rustc`
  = note: for more on editions, read https://doc.rust-lang.org/edition-guide

公式ドキュメントを見ると、プロジェクトの親ディレクトリや$HOMErustfmt.toml等の名前のファイルを作成し、エディションを指定すれば良いらしい。
というわけで以下のファイルを作成すると無事rustfmtが動くようになった。

$HOME/rustfmt.toml
edition = 2018
GitHubで編集を提案

Discussion