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
+lsp
to 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 lsp
module 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)RLS
orrust-analyzer
(for LSP users)rustfmt
for:editor format
:rustup component add rustfmt-preview
- The following commands require:
cargo-process-check
:cargo install cargo-check
cargo-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))