nftable-migration
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