Help us understand the problem. What is going on with this article?

ATOM で Go

More than 1 year has passed since last update.

(この記事は「ATOM で Go — プログラミング言語 Go | text.Baldanders.info」とのマルチポストです)

ATOM Editor で Go 言語のコーディング環境を整える。環境を作る度に「どうだったっけ」とあちこちサイトを巡るので,覚え書きとしてまとめておく。

例によって Windows 環境を前提にしているので,他の環境の方は適当に脳内補完してください。

開発支援ツールの導入

まずは Go 言語用の支援ツールを導入する。
(実際には後述するパッケージが不足しているツールを自動的に go get してくれるのだが,紹介を兼ねて先に導入する)

C:> go get -v golang.org/x/tools/cmd/vet
C:> go get -v golang.org/x/tools/cmd/goimports
C:> go get -v golang.org/x/tools/cmd/oracle
C:> go get -v github.com/golang/lint/golint
C:> go get -v github.com/nsf/gocode
C:> go get -v github.com/rogpeppe/godef

golint は,いわゆる lint ツール。vet もコードの静的検査ツール。両方あると幸せになれる。

goimport はコード整形ツールで,標準の gofmt を置き換えることができ,かつ gofmt よりも若干かしこい。gocode は入力補完ツール。godef は指定したシンボルの定義定義元情報を出力するツール(出力を使って定義元へジャンプできる。実際には oracle と併用するらしい)。いずれも vim や emacs などでは有名だが ATOM でも使える。

言わずもがなだが,これらのツールには PATH を通しておくこと。 %GOPATH%\bin フォルダにパスを通しておけばいいだろう。

go-plus パッケージの導入

では,上述のツールを操作できる go-plus パッケージを導入する。やり方は Setting(ctrl+,)から Install してもいいし apm コマンドを使ってもよい。

go-plus には設定項目がいくつかあるが,ほとんど既定値のままで使える。コマンドパレットから golang をキーワードに検索すると山程機能があるのが分かるだろう。

既定ではソースファイルを保存する度にコード整形や lint 等が走る。これを制御したい場合はパッケージの Setting で以下の項目を調整すればよい。

settings for go-plus (ATOM

定義ファイルへのジャンプと復帰は alt-cmd-g および alt-shift-cmd-G にバインドされているが Windows 環境では動かないので(コマンドパレットから起動してもいいのだが)適当なキーに再割当てするといいだろう。ファンクションキーは結構空いてるので,たとえば

Keystroke Command Selector
f12 golang:godef atom-text-editor[data-grammar="source go"]:not(.mini)
shift-f12 golang:godef-return atom-text-editor[data-grammar="source go"]:not(.mini)

とアサインするなら %USERPROFILE%\.atom\keymap.cson

keymap.cson
'atom-text-editor[data-grammar="source go"]:not(.mini)':
  'f12': 'golang:godef'
  'shift-f12': 'golang:godef-return'

と設定すればいい。

lint や定義ファイルのジャンプは GOPATHGOROOT を見て外部パッケージを判断しているのだが, gb のようなツールでは GOPATH をコマンド内部で書き換えて実行するので lint ツールとは整合性が取れなくなる。 go-plus の設定では GOPATH を上書き可能なので,とりあえずこれで回避する方法もある。

gb への対応は “Planned Features” に挙がってるので,将来的には小細工しなくても gb ベースの開発ができるようになるかもしれない。てか,なってほしい。

go-find-references パッケージが惜しい

go-find-references パッケージは redefiance/go-find-references を使って指定したシンボルを参照しているファイルを列挙してくれる便利ツールだが, Windows 環境ではタグジャンプが上手く動かない。どうやら C: などのドライブレターを上手く処理できないようだ。とほほ。

ブックマーク

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした