diff options
Diffstat (limited to 'emacs/.emacs.d/wpc/wpc-golang.el')
-rw-r--r-- | emacs/.emacs.d/wpc/wpc-golang.el | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/emacs/.emacs.d/wpc/wpc-golang.el b/emacs/.emacs.d/wpc/wpc-golang.el index 41d6cb50ec84..94dd55be1004 100644 --- a/emacs/.emacs.d/wpc/wpc-golang.el +++ b/emacs/.emacs.d/wpc/wpc-golang.el @@ -7,9 +7,21 @@ ;;; Code: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dependencies +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(require 'prelude) + +(prelude/assert (prelude/executable-exists? "goimports")) +(prelude/assert (prelude/executable-exists? "godoc")) +(prelude/assert (prelude/executable-exists? "godef")) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TODO: Support jumping to go source code for fmt.Println, etc. + ;; I'm unsure if this belongs in wpc-golang.el because it's a generic setting, ;; but because go is the first languages I've encountered that enforces tab ;; usage (I think) I'm configuring it. @@ -17,6 +29,17 @@ (use-package go-mode :config + (setq gofmt-command "goimports") + ;; TODO: Consider configuring `xref-find-definitions' to use `godef-jump' + ;; instead of shadowing the KBD here. + (general-define-key + :states '(normal) + :keymaps '(go-mode-map) + "M-." #'godef-jump) + ;; Support calling M-x `compile'. + (add-hook 'go-mode-hook (lambda () + (set (make-local-variable 'compile-command) + "go build -v"))) (add-hook-before-save 'go-mode-hook #'gofmt-before-save)) (provide 'wpc-golang) |