From 21acbb3ab57139a83965ef4f77b7aa06d1b9a481 Mon Sep 17 00:00:00 2001 From: Zelong Kuang Date: Sun, 14 Dec 2025 23:00:58 +1100 Subject: [PATCH] clangd lsp support --- lisp/init-cc.el | 5 +++++ lisp/init-lsp.el | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 lisp/init-lsp.el 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)