This module adds support for the Rust language and integration for its tools,
e.g. cargo.
- Code completion (
racer) - Syntax checking (
flycheck) - LSP support (for rls and rust-analyzer) (
rustic) - Snippets
+lspto add support Language server protocol.
- rustic has been modified not to automatically install lsp-mode or elgot if
they’re missing. Doom expects you to enable the
:tools lspmodule yourself. - rustic’s LSP integration has been disabled in favor of the rls/rust-analyzer support provider by the lsp-mode package.
This module only requires rust, which can be acquired through rustup:
curl https://sh.rustup.rs -sSf | sh
Optionally, this module also uses the following programs:
racer(if not using LSP):cargo +nightly install racer(requires rust nightly)RLSorrust-analyzer(for LSP users)rustfmtfor:editor format:rustup component add rustfmt-preview- The following commands require:
cargo-process-check:cargo install cargo-checkcargo-process-clippy:rustup component add clippy-preview
This module also supports LSP, if you have the Rust Language Server or
rust-analyzer installed. To enable it, you must enable the :tools lsp module
and the +lsp flag on this module.
| Binding | Description |
|---|---|
<localleader> b a | cargo audit |
<localleader> b b | cargo build |
<localleader> b B | cargo bench |
<localleader> b c | cargo check |
<localleader> b C | cargo clippy |
<localleader> b d | cargo doc |
<localleader> b n | cargo update |
<localleader> b o | cargo outdated |
<localleader> b r | cargo run |
<localleader> t a | cargo test |
<localleader> t t | run current test |
You’ll need rust-analyzer installed on your system, then use the following:
;; in $DOOMDIR/config.el
(setq rustic-lsp-server 'rust-analyzer)Doom doesn’t have eglot support (yet), but if you’ve installed it yourself and want rust to use eglot instead of LSP, use the following:
;; in $DOOMDIR/config.el
(after! rustic
(setq rustic-lsp-server 'rust-analyzer ; optional
rustic-lsp-client 'eglot))