diff --git a/lisp/init-cc.el b/lisp/init-cc.el index d2547aa..d6a0a56 100644 --- a/lisp/init-cc.el +++ b/lisp/init-cc.el @@ -15,5 +15,10 @@ (add-to-list 'major-mode-remap-alist '(c-or-c++-mode . c-or-c++-ts-mode))))) +(use-package eglot + :hook (c-mode . eglot-ensure) + :hook (c++-mode . eglot-ensure) + :config + (add-to-list 'eglot-server-programs '((c++-mode c-mode) "clangd"))) (provide 'init-cc) diff --git a/lisp/init-lsp.el b/lisp/init-lsp.el new file mode 100644 index 0000000..a337c7d --- /dev/null +++ b/lisp/init-lsp.el @@ -0,0 +1,23 @@ +;; -*- lexical-binding: t; -*- +(use-package eglot + :hook ((prog-mode . (lambda () + (unless (derived-mode-p + 'emacs-lisp-mode 'lisp-mode + 'makefile-mode 'snippet-mode + 'ron-mode) + (eglot-ensure)))) + ((markdown-mode yaml-mode yaml-ts-mode) . eglot-ensure)) + :init (setq eglot-autoshutdown t + eglot-events-buffer-size 0 + eglot-send-changes-idle-time 0.5)) + +(use-package eglot-booster + :after eglot + :config (eglot-booster-mode)) + +(use-package consult-eglot + :after consult eglot + :bind (:map eglot-mode-map + ("C-M-." . consult-eglot-symbols))) + +(provide 'init-lsp)