ATOM で Go
今回もまた横道に逸れてツールの話。 ATOM エディタで Go 言語のコーディング環境を整える。 環境を作る度に「どうだったっけ」とあちこちサイトを巡るので,覚え書きとしてまとめておく。
例によって Windows 環境を前提にしているので,他の環境の方は適当に脳内補完してください。
go-plus パッケージの導入
現在は go-plus パッケージにより Go 言語用の支援ツール(alecthomas/gometalinter 他)を含めて一括で導入・管理できる。
go-plus パッケージ自身の導入については ATOM の Settings 画面(ctrl+,
で起動)で Install してもいいし apm
コマンドでも可能である。
$ apm install go-plus
go-plus から以下のパッケージの導入も勧められる。 こちらもお好みでどうぞ。
- atom-ide-ui : ATOM 用統合環境(統合環境の機能自体は使わない)
- go-debug : derekparker/delve をバックエンドにしたデバッガ
- go-signature-statusbar : 入力支援
- hyperclick : マウス・クリックで定義元へジャンプできる(atom-ide-ui が入ってる場合は不要?)
あらかじめ Go 言語支援ツール用に環境変数 GOPATH
の設定を済ませておくこと。
また %GOPATH%/bin
フォルダに PATH
を通しておくこと。
go-plus パッケージの設定
go-plus には支援ツールごとに設定項目がいくつかあるが,ほとんど既定値のままで使える。 たとえばフォーマッタの設定画面は以下のようになっている。
コマンドパレットからも機能を呼び出しできる。
シンボルの定義元へジャンプする
定義元へのジャンプと復帰は ctrl-alt-g
および ctrl-alt-shift-G
にバインドされているが, alt
キーは個人的に使いにくいので,以下のように割り当て直した。
Keystroke | Command | Selector |
---|---|---|
f12 |
golang:godef |
atom-text-editor[data-grammar~="go"]:not([mini]) |
shift-f12 |
golang:godef-return |
atom-text-editor[data-grammar~="go"]:not([mini]) |
具体的には %USERPROFILE%\.atom\keymap.cson
に以下の記述を追加する。
'atom-text-editor[data-grammar~="go"]:not([mini])':
'f12': 'golang:godef'
'shift-f12': 'golang:godef-return'
なお hyperclick パッケージがあればマウス操作で定義元へジャンプできる。 まぁ,コーディング中は殆どマウスは使わないだろうけど。
language-go パッケージは同梱済み
language-go は Core パッケージに入っているためインストール時点で既に入っている1。 language-go の機能で目を引くのはやはり snippets だろう。 以下はその一部(パッケージの Settings に一覧がある)。
こんなよぅけ覚えれるか! まぁとりあえず,よく使うものだけ覚えておけばいいのだろうけど。
使い方は,トリガーとなる文字列を入力して tab キーを押す。
たとえば func
と入力して tab キーを押すと
func () {
}
と展開される。
iferr
なら
if err != nil {
return
}
となる。
なお go-signature-statusbar パッケージがあれば snippets の入力支援をしてくれるので,多少は気楽にできるかも。
ブックマーク
- struct にアノテーションつけてたら go vet . すべき - Qiita
- これからGo言語を書く人への三種の神器 - Qiita :
go vet
,goimports
,golint
で正しいコードを書きましょう。 - Big Sky :: golang のリファクタリングには gofmt ではなく、gorename を使おう。
- gometalinter で楽々 lint - Qiita
-
language
でインストール済みパッケージを検索するとメジャーな言語は大抵入っているのが分かる。 ↩︎