summary refs log tree commit diff stats
path: root/user/emacs
diff options
context:
space:
mode:
authorAlan Pearce2020-01-26 13:26:36 +0100
committerAlan Pearce2020-01-26 13:26:36 +0100
commitfbcbee20593a8b899225e7de36999ac9186a8b32 (patch)
tree72e01b8e8f98df527d83bd924b8ae1c223cfa3a1 /user/emacs
parent2413e42de9e82a752c9e7e75e07e9e036a697b10 (diff)
downloadnixfiles-fbcbee20593a8b899225e7de36999ac9186a8b32.tar.lz
nixfiles-fbcbee20593a8b899225e7de36999ac9186a8b32.tar.zst
nixfiles-fbcbee20593a8b899225e7de36999ac9186a8b32.zip
Configure golang dev environment
Diffstat (limited to 'user/emacs')
-rw-r--r--user/emacs/.emacs.d/init.el12
1 files changed, 12 insertions, 0 deletions
diff --git a/user/emacs/.emacs.d/init.el b/user/emacs/.emacs.d/init.el
index d679f086..fe736b13 100644
--- a/user/emacs/.emacs.d/init.el
+++ b/user/emacs/.emacs.d/init.el
@@ -505,6 +505,7 @@ _p_rev       _u_pper              _=_: upper/lower       _r_esolve
 
 (use-package company-lsp
   :config (progn
+            (setq company-lsp-enable-snippet nil)
             (add-to-list 'company-backends #'company-lsp)))
 
 (eval-when-compile (require 'subr-x))
@@ -677,6 +678,16 @@ _p_rev       _u_pper              _=_: upper/lower       _r_esolve
 
 ;;; Major modes
 
+;;;; golang
+(use-package go-mode
+  :config (progn
+            (setq-default gofmt-command "goimports")
+            (add-hook 'go-mode-hook (lambda ()
+                                      (add-hook 'before-save-hook #'gofmt-before-save)
+                                      (if (not (string-match-p "go" compile-command))
+                                          (set (make-local-variable 'compile-command)
+                                               "go build -v && go test && go vet"))))))
+
 ;;;; js
 (setq js-indent-level 2
       js-enabled-frameworks '(javascript))
@@ -852,6 +863,7 @@ _p_rev       _u_pper              _=_: upper/lower       _r_esolve
             yaml-mode-hook
             js-mode-hook
             css-mode-hook
+            go-mode-hook
             scss-mode-hook
             html-mode-hook
             haskell-mode-hook)