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: | ||||
| 
 | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; 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) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue