diff --git a/modules/lang/rust/doctor.el b/modules/lang/rust/doctor.el index e68ab1f6e..3cd9d6330 100644 --- a/modules/lang/rust/doctor.el +++ b/modules/lang/rust/doctor.el @@ -11,10 +11,21 @@ (unless (executable-find "cargo") (warn! "Couldn't find cargo binary")) -(when (require 'racer nil t) - ;; racer - (unless (file-exists-p racer-cmd) - (warn! "Couldn't find the racer binary at `racer-cmd'")) - ;; rust source code (rustup component add rust-src) - (unless (file-directory-p racer-rust-src-path) - (warn! "Couldn't find Rust's source code at RUST_SRC_PATH or `racer-rust-src-path'."))) +(if (featurep! +lsp) + (let ((lsp-server 'rls)) + (when (require 'rustic nil t) + (setq lsp-server rustic-lsp-server)) + (pcase lsp-server + (`rust-analyzer + (unless (executable-find "ra_lsp_server") + (warn! "Couldn't find rust analyzer (ra_lsp_server)"))) + (`rls + (unless (executable-find "rls") + (warn! "Couldn't find rls"))))) + (when (require 'racer nil t) + ;; racer + (unless (file-exists-p racer-cmd) + (warn! "Couldn't find the racer binary at `racer-cmd'")) + ;; rust source code (rustup component add rust-src) + (unless (file-directory-p racer-rust-src-path) + (warn! "Couldn't find Rust's source code at RUST_SRC_PATH or `racer-rust-src-path'."))))