33 lines
725 B
EmacsLisp
33 lines
725 B
EmacsLisp
(require 'common-lsp)
|
|
(require 'util-tree-sitter)
|
|
|
|
;; To generate a compilation database for the language server, run:
|
|
;; intercept-build13 --append make
|
|
;;
|
|
;; Output: compile_commands.json
|
|
|
|
(defun use-clangd ()
|
|
"Configure eglot to use clangd."
|
|
(eglot-ensure)
|
|
(defclass my/eglot-c (eglot-lsp-server) ()
|
|
:documentation
|
|
"Own eglot server class.")
|
|
|
|
(add-to-list 'eglot-server-programs
|
|
'(cc-mode . (my/eglot-c "clangd13")))
|
|
|
|
(tree-sitter-hl-mode)
|
|
)
|
|
|
|
(use-package cc-mode
|
|
;; c-mode c++-mode objc-mode java-mode idl-mode pike-mode awk-mode
|
|
:commands (c-mode c++-mode)
|
|
:pin manual
|
|
:hook (
|
|
(c-mode . use-clangd)
|
|
(c++-mode . use-clangd)
|
|
)
|
|
)
|
|
|
|
(provide 'lang-c)
|