(when (memq window-system '(mac ns x)) (dolist (var '("GOPATH" "GO15VENDOREXPERIMENT")) (unless (getenv var) (exec-path-from-shell-copy-env var)))) (use-package go-mode :ensure t :defer t :config (progn (bind-key "C-c C-f" 'gofmt go-mode-map) (bind-key "C-c h" 'godoc go-mode-map) (bind-key "C-c C-g" 'go-goto-imports go-mode-map) (bind-key "C-c C-r" 'go-remove-unused-imports go-mode-map)) :init (progn (add-hook 'go-mode-hook (lambda () (go-eldoc-setup) (add-hook 'before-save-hook 'gofmt-before-save) (set (make-local-variable 'company-backends) '(company-go)))))) (use-package go-eldoc :ensure t :defer t :init (add-hook 'go-mode-hook 'go-eldoc-setup)) (use-package company-go :ensure t :defer t) (provide 'lang-go)