2017-08-28 15:33:55 +00:00
|
|
|
#+TITLE: Rust layer
|
2015-06-10 16:44:30 +00:00
|
|
|
|
|
|
|
[[file:img/rust.png]]
|
|
|
|
|
2016-03-31 02:59:55 +00:00
|
|
|
* Table of Contents :TOC_4_gh:noexport:
|
2017-05-22 14:16:12 +00:00
|
|
|
- [[#description][Description]]
|
2017-08-28 21:58:10 +00:00
|
|
|
- [[#features][Features:]]
|
2017-05-22 14:16:12 +00:00
|
|
|
- [[#install][Install]]
|
|
|
|
- [[#layer][Layer]]
|
|
|
|
- [[#racer][Racer]]
|
|
|
|
- [[#cargo][Cargo]]
|
|
|
|
- [[#rustfmt][Rustfmt]]
|
|
|
|
- [[#key-bindings][Key bindings]]
|
2015-06-10 16:44:30 +00:00
|
|
|
|
|
|
|
* Description
|
2017-04-26 13:50:19 +00:00
|
|
|
This layer supports [[https://www.rust-lang.org/en-US/][Rust]] development in Spacemacs.
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2017-08-28 21:58:10 +00:00
|
|
|
** Features:
|
|
|
|
- Auto-completion and navigation support through [[https://github.com/phildawes/racer][Racer]]
|
|
|
|
- support for the Rust package manager [[http://doc.crates.io/index.html][Cargo]]
|
2015-06-10 16:44:30 +00:00
|
|
|
|
|
|
|
* Install
|
|
|
|
** Layer
|
2016-01-06 05:21:55 +00:00
|
|
|
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.
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2016-01-10 12:36:56 +00:00
|
|
|
** Racer
|
|
|
|
You must install [[https://github.com/phildawes/racer][Racer]] to use this. Make sure the =racer= binary is available in
|
|
|
|
your =PATH= and to set the environment variable =RUST_SRC_PATH=, as described in
|
|
|
|
the [[https://github.com/phildawes/racer#installation][installation instructions]].
|
|
|
|
|
|
|
|
To enable auto-completion, ensure that the =auto-completion= layer is enabled.
|
|
|
|
|
2015-06-10 16:44:30 +00:00
|
|
|
** Cargo
|
2015-06-10 21:16:01 +00:00
|
|
|
[[http://doc.crates.io/index.html][Cargo]] is a project management command line tool for Rust. Installation
|
|
|
|
instructions can be found on the main page of [[http://doc.crates.io/index.html][Cargo]].
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2016-01-11 14:43:22 +00:00
|
|
|
** Rustfmt
|
|
|
|
Format Rust code according to style guidelines using [[https://github.com/rust-lang-nursery/rustfmt][rustfmt]].
|
|
|
|
|
|
|
|
#+BEGIN_SRC sh
|
|
|
|
cargo install rustfmt
|
|
|
|
#+END_SRC
|
|
|
|
|
2016-02-17 13:37:27 +00:00
|
|
|
To enable automatic buffer formatting on save, set the variable =rust-format-on-save= to =t=.
|
2016-01-11 14:43:22 +00:00
|
|
|
|
2015-06-10 16:44:30 +00:00
|
|
|
* Key bindings
|
|
|
|
|
2016-08-07 15:37:12 +00:00
|
|
|
| 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 |
|
2017-12-08 04:04:05 +00:00
|
|
|
| ~SPC m c f~ | format all project files with rustfmt |
|
2016-08-07 15:37:12 +00:00
|
|
|
| ~SPC m c i~ | create a new project with Cargo (init) |
|
2017-06-26 09:14:48 +00:00
|
|
|
| ~SPC m c l~ | run linter ([[https://github.com/arcnmx/cargo-clippy][cargo-clippy]]) with Cargo |
|
2016-08-07 15:37:12 +00:00
|
|
|
| ~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 |
|
2017-12-08 04:04:05 +00:00
|
|
|
| ~SPC m c t~ | run the current test with Cargo |
|
2016-08-07 15:37:12 +00:00
|
|
|
| ~SPC m c u~ | update dependencies with Cargo |
|
|
|
|
| ~SPC m c x~ | execute a project with Cargo |
|
2018-01-18 04:17:50 +00:00
|
|
|
| ~SPC m c v~ | check (verify) a project with Cargo |
|
2016-08-07 15:37:12 +00:00
|
|
|
| ~SPC m g g~ | jump to definition |
|
2016-08-28 10:21:45 +00:00
|
|
|
| ~SPC m h h~ | describe symbol at point |
|
2016-08-07 15:37:12 +00:00
|
|
|
| ~SPC m t~ | run tests with Cargo |
|