これは何?
VSCodeで、ファイル保存時はPrettierを走らせて自動整形したい開発者が多いと思います。
一方、terraform(.tf)でも保存時にterraform fmtしてほしい、、そんな時の対処法を書き留めときます。
いきなり答え
settings.json に下記を追記すれば解決です。
settings.json
"[terraform]": {
"editor.defaultFormatter": "hashicorp.terraform",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.formatAll.terraform": true
}
},
"[terraform-vars]": {
"editor.defaultFormatter": "hashicorp.terraform",
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.formatAll.terraform": true
}
}
何を解決したのか
単純にterraformだけ自動整形したければ、
- terraformの拡張機能をインストール
- VSCodeの設定からformatOnSaveをチェック
- Default FormatterをHashicorp Terraformに設定
でOKです。
ただこれだとdefaultFormatterが Prettier じゃないので、terraform以外の開発する時にいちいちDefaultFormatterをPrettierに戻さないといけず、超面倒です。
そこで冒頭の設定を追記すれば、デフォルトをPrettierに維持しつつ、terraformもファイル保存時に自動整形することができ、いい感じに自動整形を効かせられるようになりました。
これでまた一つ幸せになりました。

