✌️

vscodeでgolangが自動整形されない問題

2021/09/09に公開

この記事について

VSCodeで自動フォーマットがgolangに効かなかったので調べてまとめました。自分用メモです。
しょうもない記事ですが、誰かの助けになれば嬉しいです。

問題発生

私のVSCodeでは、拡張機能のPrettierGo in Visual Studio Codeを入れています。
適当にgolangで記述したあとに保存していると、下記のような警告が出ていることに気づきました。

このときのsettings.jsonはこんな感じです。(重要なものだけ抜き出しています。)

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
}

これでは自動フォーマットされないようです。かなしい。

※ ちなみにsettings.jsonはVSCodeの設定ファイルです。
参考: 【VSCode】settings.jsonについて理解する

結論

settings.jsonを下記のように記述します。

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "[go]": {
    "editor.defaultFormatter": "golang.go"
  },
}

解説

言語単位でフォーマットの設定を書き換えているだけです。
デフォルトのフォーマッターをgolangの時だけ上書きしています。
"golang.go"は Go in Visual Studio Code の Formattingを使用しています。

下の記事は別の内容の解説ですが、わかりやすいのでおすすめです。
参考: [VSCode] Prettierをアップデートしたら言語単位でのフォーマット無効設定が動作しなくなったので対処した話

以上!

Discussion