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