(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)