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`
This commit is contained in:
parent
7c2933f3c3
commit
05135ef875
2 changed files with 24 additions and 0 deletions
|
|
@ -6,10 +6,22 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Dependencies
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(require 'prelude)
|
||||||
|
|
||||||
|
(prelude/assert (prelude/executable-exists? "goimports"))
|
||||||
|
(prelude/assert (prelude/executable-exists? "godoc"))
|
||||||
|
(prelude/assert (prelude/executable-exists? "godef"))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Configuration
|
;; 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,
|
;; 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
|
;; but because go is the first languages I've encountered that enforces tab
|
||||||
;; usage (I think) I'm configuring it.
|
;; usage (I think) I'm configuring it.
|
||||||
|
|
@ -17,6 +29,17 @@
|
||||||
|
|
||||||
(use-package go-mode
|
(use-package go-mode
|
||||||
:config
|
: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))
|
(add-hook-before-save 'go-mode-hook #'gofmt-before-save))
|
||||||
|
|
||||||
(provide 'wpc-golang)
|
(provide 'wpc-golang)
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ let
|
||||||
py-yapf
|
py-yapf
|
||||||
reason-mode
|
reason-mode
|
||||||
elixir-mode
|
elixir-mode
|
||||||
|
go-mode
|
||||||
company
|
company
|
||||||
markdown-mode
|
markdown-mode
|
||||||
refine
|
refine
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue