VSCodeでGoをいい感じにフォーマットする
普通はFormat Toolにgoimportsを指定すれば終わるはずだけど,上手くいかないのでなんとかするメモ
普通の方法
設定を開いてGo: Format Tool:
にgoimportsを指定する.
これでgoimportsが規定のフォーマッターとして機能し,コマンドパレットでFormat Document
すればフォーマットとimportsの補完,削除が自動で行われる.
だがしかし
上手くいかない.Format Document
してもフォーマットはされるがimportsの補完や削除は行ってくれなかった.コマンドラインでgoimports
すれば期待通りに動くので,Format Document
した時にVSCodeから実行されるコマンドがgoimportsになってないのかもしれない.おそらく自分の環境が何か間違えてるのだと思うが,ggってもDeveloper toolを見てもよく分からなかった.
こんなことに時間を使うのも嫌なので,他のアプローチでなんとかする.
やりたいこと
キーボードショートカットを叩けばgoimports -w .
相当の処理(カレントディレクトリ以下のgoファイルに対して再起的にgoimportsを適応)がしたい.
キーボードショートカットで任意コマンド呼び出し
VSCode標準の機能ではできないらしい*1ので,拡張機能を利用する.
keybindings.json
に以下を追記する.
{ "key": "ctrl+[", "command": "terminalCommandKeys.run", "when": "editorTextFocus && !editorReadonly", "args": { "cmd": "goimports -w ." } },
これでctrl + [
を入力すればフォーマットとimport補完が効くようになる.
*1:よく調べればできるのかもしれない