Rust
Let's setup Emacs for Rust development, shall we ?
Also note that Spacemacs has a Rust layer.
rust-mode
- syntax highlighted,
- code formatting, optionally automatic,
- Imenu support,
- navigation by semantics (go to the beginning or end of the current defun), (see also helm-swoop, helm-ag, tags,…)
- playpen helpers (send the selected code to play.rust-lang.org),
- …
In Debian testing and unstable you can also install it with apt install elpa-rust-mode
(but the MELPA way is prefered).
Code formatting with rustfmv
Formatting is also provided by this mode. If you want auto formatting everytime you save a buffer, put this in your Init File:
(setq rust-format-on-save t)
On-the-fly syntax checking: Flycheck-rust
See flycheck-rust (on MELPA). See Flycheck.
Emacs-racer
See emacs-racer (also in MELPA) for documentation and screencasts. It provides:
- code completion of variables, functions and modules (not macros yet due to a racer limitation) (see also company-mode)
- jump to definition (bound to M-.)
- describe functions and types,
Run Cargo tasks
cargo.el ("cargo" in MELPA) gives us a set of key combinations to perform Cargo tasks within our Rust projects.
See also Compilation.
Debugging
Use the built-in gbd and use rust-gdb to launch gdb with the Rust-specific pretty-printers enabled.
Protip: set breakpoints with "break file:line" instead of "rbreak" which can give an "unmatched quote" error.