summary refs log tree commit diff
path: root/emacs.d/modes/lang-go.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs.d/modes/lang-go.el')
-rw-r--r--emacs.d/modes/lang-go.el25
1 files changed, 25 insertions, 0 deletions
diff --git a/emacs.d/modes/lang-go.el b/emacs.d/modes/lang-go.el
new file mode 100644
index 0000000..8d81f2c
--- /dev/null
+++ b/emacs.d/modes/lang-go.el
@@ -0,0 +1,25 @@
+(use-package go-mode
+  :ensure t
+  :defer t
+  :config
+  (progn
+    (bind-key "C-c C-f" 'gofmt go-mode-map)
+    (bind-key "C-c h" 'godoc go-mode-map)
+    (bind-key "C-c C-g" 'go-goto-imports go-mode-map)
+    (bind-key "C-c C-r" 'go-remove-unused-imports go-mode-map))
+  :init
+  (progn (add-hook 'go-mode-hook (lambda ()
+                                   (go-eldoc-setup)
+                                   (add-hook 'before-save-hook 'gofmt-before-save)
+                                   (set (make-local-variable 'company-backends) '(company-go))))))
+
+(use-package go-eldoc
+  :ensure t
+  :defer t
+  :init (add-hook 'go-mode-hook 'go-eldoc-setup))
+
+(use-package company-go
+  :ensure t
+  :defer t)
+
+(provide 'lang-go)