system-manager-wakasu
 1;;; programming-eglot.el --- -*- lexical-binding: t; -*-
 2;;; Commentary:
 3;;; Eglot configuration
 4;;; Code:
 5(use-package eglot
 6  :bind
 7  (:map eglot-mode-map
 8        ("C-c e a" . eglot-code-actions)
 9        ("C-c e r" . eglot-reconnect)
10        ("<f2>" . eglot-rename)
11        ("C-c e ?" . eldoc-print-current-symbol-info))
12  :config
13  (add-to-list 'eglot-ignored-server-capabilities :documentHighlightProvider)
14  (add-to-list 'eglot-server-programs `(json-mode  "vscode-json-language-server" "--stdio"))
15  (add-to-list 'eglot-server-programs '(nix-mode . ("nil")))
16  (setq-default eglot-workspace-configuration
17		'(:gopls (:usePlaceholders t)))
18  (setq-default
19   eglot-workspace-configuration
20   '((:gopls . ((gofumpt . t)))))
21  :hook
22  (before-save . gofmt-before-save)
23  (before-save . eglot-format-buffer)
24  (nix-mode . eglot-ensure)
25  (nix-ts-mode . eglot-ensure)
26  (rust-mode . eglot-ensure)
27  (rust-ts-mode . eglot-ensure)
28  (sh-script-mode . eglot-ensure)
29  (python-mode . eglot-ensure)
30  (json-mode . eglot-ensure)
31  (yaml-mode . eglot-ensure)
32  (c-mode . eglot-ensure)
33  (cc-mode . eglot-ensure)
34  (go-mode . eglot-ensure)
35  (go-ts-mode . eglot-ensure)
36  (js-mode . eglot-ensure)
37  (js2-mode . eglot-ensure)
38  (typescript-mode . eglot-ensure)
39  (typescript-ts-mode . eglot-ensure))
40
41(use-package eldoc-box
42  :hook
43  (eglot-managed-mode . eldoc-box-hover-mode)
44  :custom
45  (eldoc-box-max-pixel-width 1024))
46
47
48(provide 'programming-eglot)
49;;; programming-eglot.el ends here