読者です 読者をやめる 読者になる 読者になる

$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

golang用にgo-eldocやflycheckなどを入れました

goインストールから、emacsにgo-mode, go-autocompleteを導入するまで - $shibayu36->blog; でgoのemacs用設定を少ししたのですが、もう少し設定を進めました。

go-eldocの導入

 勧められたので入れたらだいぶ便利でした。カーソル位置のメソッドのドキュメントがmini bufferに出るというやつ。go-eldocを書きました - Life is very short

MELPAからいれます。

M-x package-install go-eldoc

設定

(require 'go-eldoc)
(add-hook 'go-mode-hook 'go-eldoc-setup)
(set-face-attribute 'eldoc-highlight-function-argument nil
                    :underline t :foreground "green"
                    :weight 'bold)

こんな感じ。

helmでgoのdocumentを引いたり、import出来るようにしたり

EmacsでのGo言語編集環境(Linux編) - Life is very short をパクりました。

;;; helm-doc
(defvar my/helm-go-source
  '((name . "Helm Go")
    (candidates . go-packages)
    (action . (("Show document" . godoc)
               ("Import package" . my/helm-go-import-add)))))

(defun my/helm-go-import-add (candidate)
  (dolist (package (helm-marked-candidates))
    (go-import-add current-prefix-arg package)))

(defun my/helm-go ()
  (interactive)
  (helm :sources '(my/helm-go-source) :buffer "*helm go*"))

(define-key go-mode-map (kbd "C-c C-d") 'my/helm-go)

これでC-c C-dを押せばpackageのリストが出てきて、ドキュメントを参照したり、importへの追加が出来たりということが出来るようになりました。

flycheckの導入

flycheckの説明は d.hatena.ne.jp/syohex/20130123/1358950322:title に任せるとして、導入は簡単でした。

インストール

M-x package-install flycheck

設定

;;; flycheck
(add-hook 'go-mode-hook 'flycheck-mode)

これでエラってるところはこんなかんじで色が付きます。

タグジャンプ

タグジャンプ標準でついてたのでkeybindの設定だけします。

(define-key go-mode-map (kbd "C-@") 'godef-jump-other-window)

まとめ

goインストールから、emacsにgo-mode, go-autocompleteを導入するまで - $shibayu36->blog; につづいて設定しました。だいぶ整ってきたのでそろそろgo書きます。