handlename's blog

コード片など

flycheck用のgo-vetコマンドを再定義する

わけあってgoamzのコードをemacs上で読んでいたら、 こことかで flycheck経由のgo-vetが次のようなワーニングを出していた。

composite literal uses unkeyed fields

AttributeDefinitionsはsliceだから、なんでunkeyed fieldsと書かれているのかがわからない。 スルーしてもいいのだけど、気になるのでググったら 「-composites=falseするといいよ!」ってあった。 https://code.google.com/p/go/issues/detail?id=6820

というわけでflycheckのcheckerを再定義した。

(flycheck-define-checker go-vet
  "A go syntax checker."
  :command ("go" "tool" "vet" "-composites=false" source-inplace)
  :error-patterns ((error line-start
                          (file-name) ":" line ":" (minimal-match (message))
                          line-end))
  :modes (go-mode))

これで上記のワーニングは出なくなった。