 (add-to-list 'company-backends 'company-go)
 
 (add-to-list 'load-path (concat (getenv "GOPATH")  "/src/github.com/golang/lint/misc/emacs"))
-(require 'golint)
 
 (add-hook 'go-mode-hook
-          '(lambda()
+          (lambda()
             (setq tab-width 4)
             (add-hook 'before-save-hook 'gofmt-before-save)
-            (setq c-basic-offset 4)
-            (setq indent-tabs-mode t)))
+            (defvar c-basic-offset 4)
+            (setq indent-tabs-mode t)
+            (require 'golint)))
+
+;;; init.el ends here

(yas-global-mode 1)

;;; set recentf-ext
;; 最近のファイル500個を保存する
(setq recentf-max-saved-items 500)
;; 最近使ったファイルに加えないファイルを
;; 正規表現で指定する
(setq recentf-exclude
      '("/TAGS$" "/var/tmp/"))
(require 'recentf-ext)
;; キーバインド
(global-set-key (kbd "C-x C-r") 'recentf-open-files)

;;; flycheck
(require 'flycheck) 
(global-flycheck-mode)

;;; set helm


;;; set helm-gtags
(add-hook 'helm-gtags-mode-hook
          '(lambda ()
             ;;入力されたタグの定義元へジャンプ
             (local-set-key (kbd "M-t") 'helm-gtags-find-tag)
             ;;入力タグを参照する場所へジャンプ
             (local-set-key (kbd "M-r") 'helm-gtags-find-rtag)
             ;;入力したシンボルを参照する場所へジャンプ
             (local-set-key (kbd "M-s") 'helm-gtags-find-symbol)
             ;;タグ一覧からタグを選択し, その定義元にジャンプする
             (local-set-key (kbd "M-l") 'helm-gtags-select)
             ;;ジャンプ前の場所に戻る
             (local-set-key (kbd "C-t") 'helm-gtags-pop-stack)))

;;; GNU Global のタグファイル自動更新
(defun my-c-mode-update-gtags ()
  "GNU Global auto update for tag files."
  (let* ((file (buffer-file-name (current-buffer)))
     (dir (directory-file-name (file-name-directory file))))
    (when (executable-find "global")
