   t)
 
 
+(defun doteamcs/prog/go ()
+  ;; TODO: DOCUMENT THIS
+
+  (use-package go-mode
+    :ensure t
+    :defer t
+    :bind
+    (:map go-mode-map
+          ("M-." . godef-jump)
+          ("F11" . next-error)
+          ("F12" . previous-error))
+    :hook
+    (before-save . gofmt-before-save)
+    :custom
+    (gofmt-command "goimports")
+    :init
+    (or (getenv "GOPATH")
+        (setenv "GOPATH" (expand-file-name "~/.go")))
+    (setenv "PATH" (concat (getenv "GOPATH") "/bin" ":" (getenv "PATH"))))
+
+
+  (use-package company-go
+    :after go-mode
+    :ensure t
+    :defer t
+    :config
+    (push 'company-go company-backends))
+
+  (use-package go-guru
+    :ensure t
+    :hook
+    (go-mode . go-guru-hl-identifier-mode))
+
+  (use-package flycheck-golangci-lint
+    :ensure t
+    :hook
+    (go-mode . flycheck-golangci-lint-setup))
+  t)
+
+
 (defun dotemacs/prog/python ()
   (message "dotemacs/prog/python")
 

    ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
    (setq lsp-keymap-prefix "C-c l")
    :hook ((python-mode . lsp)
           (lsp-mode . lsp-enable-which-key-integration))
    :commands lsp)


  (dotemacs/org)
  (dotemacs/prog/docker)
  (dotemacs/prog/elisp)
  (doteamcs/prog/go)
  (dotemacs/prog/python)
  (dotemacs/prog/restructured-text)

