summary refs log tree commit diff stats
path: root/user/emacs
diff options
context:
space:
mode:
Diffstat (limited to 'user/emacs')
-rw-r--r--user/emacs/init.el13
1 files changed, 11 insertions, 2 deletions
diff --git a/user/emacs/init.el b/user/emacs/init.el
index 3cd6f853..7ccbe260 100644
--- a/user/emacs/init.el
+++ b/user/emacs/init.el
@@ -1040,9 +1040,16 @@ _C-k_: prev  _u_pper              _=_: upper/lower       _s_mart resolve
             (defun my/setup-eglot-eldoc ()
               (push 'flymake-eldoc-function eldoc-documentation-functions))
             (add-hook 'eglot-managed-mode-hook 'my/setup-eglot-eldoc)
+            (setf (alist-get '(go-mode go-dot-mod-mode go-dot-work-mode go-ts-mode go-mod-ts-mode)
+                             eglot-server-programs
+                             nil nil #'equal)
+                  (eglot-alternatives '("golangci-lint-langserver"
+                                        "gopls" )))
             (setq-default eglot-workspace-configuration
-                          '(:yaml (:keyOrdering nil)
-                                  :nix (:autoArchive t))
+                          '( :yaml (:keyOrdering nil)
+                             :nix (:autoArchive t)
+                             :gopls ( :staticcheck t
+                                      :usePlaceholders t))
                           eglot-ignored-server-capabilities '(:documentHighlightProvider))
             (defun my/eglot-capf ()
               (setq-local completion-at-point-functions
@@ -1095,6 +1102,8 @@ _C-k_: prev  _u_pper              _=_: upper/lower       _s_mart resolve
                   '("shfmt"))
             (setf (alist-get 'nixfmt apheleia-formatters)
                   '("nixpkgs-fmt"))
+            (setf (alist-get 'go-ts-mode apheleia-mode-alist)
+                  '(goimports))
             (add-hook 'apheleia-mode-hook #'turn-off-format-all-mode))
   :init (progn
           (apheleia-global-mode +1)))