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). - +tree-sitter
- Leverages tree-sitter for better syntax highlighting and structural text editing. Requires doom-module::tools tree-sitter.
- 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 | sh
Note 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-check
cargo-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?