diff options
author | William Carroll <wpcarro@gmail.com> | 2020-02-05T17·55+0000 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-02-05T17·58+0000 |
commit | 05135ef875497b9699c393f9ab7ac99c4c523827 (patch) | |
tree | c8a8372419bd9661527a87b5905a3bfe4a52c086 /emacs/.emacs.d/wpc/wpc-golang.el | |
parent | 7c2933f3c3812215b6587bdda8c01268c6450d16 (diff) |
Further configure Go tooling
- Prefer goimports to gofmt. goimports calls gofmt; it also adds and removes dependencies. - Assert the presence of goimports, godoc, godef - KBD godef to M-. - Support the M-x compile command for calling `go build -v`
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) |