This module adds support for the Rust language and integration for its tools,
e.g. cargo.
- Code completion (doom-package:racer or an LSP server)
- Syntax checking (doom-package:flycheck)
- LSP support (for rust-analyzer and rls) (doom-package:rustic)
- Snippets
- @hlissner
Become a maintainer?
- +lsp
-
Enable LSP support for
rustic-mode. Requires doom-module::tools lsp and a langserver (supports rust-analyzer and rls).
- doom-package:rustic
- rustic has been modified not to automatically install lsp-mode or eglot if they’re missing. Doom expects you to have enabled the doom-module::tools lsp module yourself.
This module does not have a changelog yet.
Enable this module in your doom! block.
This module requires rust, which can be acquired through rustup:
curl https://sh.rustup.rs -sSf | shNote that when the Rust language has updates, you are to run rustup such
that it doesn’t upgrade itself:
rustup update --no-self-update- If doom-module::editor format is enabled, you’ll need
rustfmt:$ rustup component add rustfmt-preview. - Users with doom-module:+lsp enabled will need rust-analyzer (rls is supported, but deprecated).
- Using the following commands requires:
cargo-process-check:$ cargo install cargo-checkcargo-process-clippy:$ rustup component add clippy-preview
🔨 This module’s usage documentation is incomplete. Complete it?
This module supports LSP integration. For it to work you’ll need:
- To install rust-analyzer through your OS package manager (RLS is supported too, but it is deprecated).
- To enable the doom-module::tools lsp module.
- To enable the doom-module:+lsp flag on this module.
Enable doom-module::editor format +onsave to get formatting on save with rustfmt. No
additional configuration is necessary.
| 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 |
🔨 This module’s configuration documentation is incomplete. Complete it?
Doom’s doom-module::tools lsp module has an doom-module:+eglot flag. Enable it and this module will use eglot instead.
Report an issue?
You may be seeing this error, despite having edition = "2018" in your
Cargo.toml. This error actually originates from rustfmt, which the LSP
server tries to invoke on save (if you have rustic-format-trigger or <a href=”doom-module::editor
format”>doom-module::editor
format enabled).
To fix this your project needs a rustfmt.toml with edition = "2018" in it.
This module has no FAQs yet. Ask one?
🔨 This module has no appendix yet. Write one?