6.2 KiB
Rust layer
Description
Install
Layer
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add rust
to the existing dotspacemacs-configuration-layers
list in this
file.
Backends
The backend is dependent upon the rust-backend
layer configuration variable.
The possible vaules for rust-backend
are lsp
or racer
with racer
being the default.
Racer
You must install Racer to use this backend. Make sure the racer
binary is available in
your PATH
and to set the environment variable RUST_SRC_PATH
, as described in
the installation instructions.
To enable auto-completion, ensure that the auto-completion
layer is enabled.
LSP
You must add lsp
to the existing dotspacemacs-configuration-layers
in your ~/.spacemacs
.
Consult the installation command for the desired language server found at lsp-mode for instructions.
To enable auto-completion, ensure that the auto-completion
layer is enabled.
Debugger (dap integration)
To install the debug adapter you may run M-x dap-gdb-lldb-setup
when you are on Linux or download it manually from Native Debug and adjust dap-gdb-lldb-path
.
Cargo
Rustfmt
Format Rust code according to style guidelines using rustfmt.
cargo install rustfmt
To enable automatic buffer formatting on save, set the variable rust-format-on-save
to t
.
Key bindings
Key binding | Description |
---|---|
SPC m = = |
reformat the buffer |
SPC m c . |
repeat the last Cargo command |
SPC m c C |
remove build artifacts with Cargo |
SPC m c X |
execute a project example with Cargo |
SPC m c c |
compile project with Cargo |
SPC m c d |
generate documentation with Cargo |
SPC m c e |
run benchmarks with Cargo |
SPC m c f |
format all project files with rustfmt |
SPC m c i |
create a new project with Cargo (init) |
SPC m c l |
run linter (cargo-clippy) with Cargo |
SPC m c n |
create a new project with Cargo (new) |
SPC m c o |
run all tests in current file with Cargo |
SPC m c s |
search for packages on crates.io with Cargo |
SPC m c t |
run the current test with Cargo |
SPC m c u |
update dependencies with Cargo |
SPC m c x |
execute a project with Cargo |
SPC m c v |
check (verify) a project with Cargo |
SPC m g g |
jump to definition |
SPC m h h |
describe symbol at point |
SPC m t |
run tests with Cargo |
debugger
Key binding | Description |
---|---|
SPC m d d d |
start debugging |
SPC m d d l |
debug last configuration |
SPC m d d r |
debug recent configuration |
SPC m d c |
continue |
SPC m d i |
step in |
SPC m d o |
step out |
SPC m d s |
next step |
SPC m d v |
inspect value at point |
SPC m d r |
restart frame |
SPC m d . |
debug transient state |
SPC m d a |
abandon current session |
SPC m d A |
abandon all process |
SPC m d e e |
eval |
SPC m d e r |
eval region |
SPC m d e t |
eval value at point |
SPC m d S s |
switch session |
SPC m d S t |
switch thread |
SPC m d S f |
switch frame |
SPC m d I i |
inspect |
SPC m d I r |
inspect region |
SPC m d I t |
inspect value at point |
SPC m d b b |
toggle a breakpoint |
SPC m d b c |
change breakpoint condition |
SPC m d b l |
change breakpoint log condition |
SPC m d b h |
change breakpoint hit count |
SPC m d b a |
add a breakpoint |
SPC m d b d |
delete a breakpoint |
SPC m d b D |
clear all breakpoints |
SPC m d '_ |
Run debug REPL |
SPC m d w l |
list local variables |
SPC m d w o |
goto output buffer if present |
SPC m d w s |
list sessions |
SPC m d w b |
list breakpoints |