;;; init-lsp.el --- Configure LSP integration -*- lexical-binding: t -*- ;; Author: Franck Cuny ;;; Commentary: ;; Configure LSP integration ;;; Code: (use-package eglot :after yasnippet :bind (:map eglot-mode-map ("C-c l a" . eglot-code-actions) ("C-c l r" . eglot-rename) ("C-c l f" . eglot-format-buffer)) :hook (eglot-managed-mode . (lambda () (eglot-inlay-hints-mode -1))) :config (setq-default read-process-output-max (* 1024 1024) eglot-events-buffer-size 0 eglot-events-buffer-config '(:size 0 :format full)) (setq eglot-autoshutdown t) (setq-default eglot-workspace-configuration '(:pylsp (:plugins (:ruff (:enabled t))) :gopls (:usePlaceholders t :staticcheck t :completeUnimported t :matcher "CaseSensitive"))) ;; uses https://github.com/nix-community/nixd for the LSP server instead of rnix (add-to-list 'eglot-server-programs '(nix-mode . ("nixd")))) (use-package eldoc-box :ensure t :hook (eglot-managed-mode . eldoc-box-hover-mode) :custom (eldoc-documentation-strategy 'eldoc-documentation-enthusiast) :custom-face (eldoc-box-body ((t (:background "#eeefff" :family "Monaspace Argon" :height 0.9))))) (provide 'init-lsp) ;;; init-lsp.el ends here