diff --git a/nix/configuration/roles/emacs/default.nix b/nix/configuration/roles/emacs/default.nix index ee3b0c5..00ea926 100644 --- a/nix/configuration/roles/emacs/default.nix +++ b/nix/configuration/roles/emacs/default.nix @@ -127,6 +127,8 @@ in final.nixfmt-rfc-style # auto-formatting nix files through nixd final.clang # To compile tree-sitter grammars final.shellcheck + final.cmake-language-server + final.cmake # Used by cmake-language-server ] } ''; diff --git a/nix/configuration/roles/emacs/files/emacs/elisp/lang-cmake.el b/nix/configuration/roles/emacs/files/emacs/elisp/lang-cmake.el new file mode 100644 index 0000000..885449b --- /dev/null +++ b/nix/configuration/roles/emacs/files/emacs/elisp/lang-cmake.el @@ -0,0 +1,18 @@ +(require 'common-lsp) + +(use-package cmake-mode + :commands cmake-mode + :hook ( + (cmake-mode . (lambda () + (eglot-ensure) + (defclass my/eglot-cmake (eglot-lsp-server) () + :documentation + "Own eglot server class.") + + (add-to-list 'eglot-server-programs + '(cmake-mode . (my/eglot-cmake "cmake-language-server"))) + )) + ) + ) + +(provide 'lang-cmake) diff --git a/nix/configuration/roles/emacs/files/emacs/init.el b/nix/configuration/roles/emacs/files/emacs/init.el index 68b1a11..ad9ff8b 100644 --- a/nix/configuration/roles/emacs/files/emacs/init.el +++ b/nix/configuration/roles/emacs/files/emacs/init.el @@ -38,4 +38,6 @@ (require 'lang-nix) +(require 'lang-cmake) + (load-directory autoload-directory)