summary refs log tree commit diff
diff options
context:
space:
mode:
authorTerin Stock <terinjokes@gmail.com>2022-04-21 21:53:35 -0500
committerTerin Stock <terinjokes@gmail.com>2022-04-21 21:55:38 -0500
commit81259b3442a284a2511b388c65021c50f70ace0e (patch)
tree8246a330a7a21332384110a446bc030ad93016d7
parentcd01325d9ad20277a3ac7c964ef206a523fab645 (diff)
config(lsp): migrate to eglot from lsp-mode
-rw-r--r--init.el2
-rw-r--r--lang/go.el18
2 files changed, 12 insertions, 8 deletions
diff --git a/init.el b/init.el
index b51c5da..6d35edb 100644
--- a/init.el
+++ b/init.el
@@ -93,7 +93,7 @@
        (eval +overlay)     ; run code, run (also, repls)
        ;;gist              ; interacting with github gists
        (lookup +dictionary); navigate your code and its documentation
-       lsp                 ; M-x vscode
+       (lsp +eglot)        ; M-x vscode
        magit               ; a git porcelain for Emacs
        ;;make              ; run make tasks from Emacs
        ;;pass              ; password manager for nerds
diff --git a/lang/go.el b/lang/go.el
index 654b19f..199053d 100644
--- a/lang/go.el
+++ b/lang/go.el
@@ -1,11 +1,15 @@
 ;;; lang/go.el -*- lexical-binding: t; -*-
 
-(after! lsp
-  (lsp-register-custom-settings
-   '(("gopls.staticcheck" t t))))
+(defun +eglot-organize-imports ()
+  (call-interactively 'eglot-code-action-organize-imports))
 
-(setq-hook! 'go-mode-hook +format-with :none)
+(when (featurep! :tools lsp +eglot)
+  (after! eglot
+    (add-to-list 'eglot-workspace-configuration
+                 `((:gopls . ((staticcheck . t))))))
 
-(add-hook! 'go-mode-hook
-  (add-hook 'before-save-hook 'lsp-format-buffer t t)
-  (add-hook 'before-save-hook 'lsp-organize-imports t t))
+  (setq-hook! 'go-mode-hook +format-with :none)
+
+  (add-hook! 'go-mode-hook
+    (add-hook 'before-save-hook #'eglot-format-buffer -30 t)
+    (add-hook 'before-save-hook #'+eglot-organize-imports -20 t)))