Golang は使われていないものまで import しているとコンパイル時にエラーになります。
この仕様自体はとてもいいと思うのですが,ちょっとしたファイルを試行錯誤している時にどこかの行をコメントアウトする度に import 文も書き換えないとコンパイルできないというようなことが発生してイライラする事があります。
せっかくの静的型付け言語ですのでこの辺りを自動でいい感じにしてくれると嬉しいです。
そんなあなたに goimports
がおすすめです
Emacs などのエディタで保存時に gofmt
をかけて自動整形させる設定は誰でもしていることと思いますが,goimports
は gofmt
と全く同じ用に使えてかつ import 周りを自動でいい感じにしてくれるという優れものです。
インストールは go get
でサクッと
go get golang.org/x/tools/cmd/goimports
Emacs を使っている場合は go-mode を読み込んでから以下のように gofmt
の代わりに goimports
を使うようにすればいいです。
(setq gofmt-command "goimports")
(add-hook 'before-save-hook 'gofmt-before-save)
注意点としては GUI の Emacs を使っている場合は環境変数の PATH と GOPATH をシェルから引き継がないといけません。
GOPATHの中にプロジェクトが増えるとドンドン遅くなっていきます。そんな時はGoのソースコードが存在しないディレクトリを $GOPATH/src/.goimportsignore
に書いて無視するようにします。自動的に作成することもできます。
go get github.com/pwaller/goimports-update-ignore
goimports-update-ignore -max-depth 1