2015-06-10 16:44:30 +00:00
#+TITLE : Rust contribution layer for Spacemacs
2015-11-08 18:04:44 +00:00
#+HTML_HEAD_EXTRA : <link rel="stylesheet" type="text/css" href="../../../css/readtheorg.css" />
2015-06-10 16:44:30 +00:00
[[file:img/rust.png ]]
2015-10-30 11:20:58 +00:00
* Table of Contents :TOC_4_org:noexport:
- [[Description ][Description ]]
- [[Install ][Install ]]
- [[Layer ][Layer ]]
2016-01-10 12:36:56 +00:00
- [[Racer ][Racer ]]
2015-10-30 11:20:58 +00:00
- [[Cargo ][Cargo ]]
2016-01-11 14:43:22 +00:00
- [[Rustfmt ][Rustfmt ]]
2015-10-30 11:20:58 +00:00
- [[Key bindings ][Key bindings ]]
2015-06-10 16:44:30 +00:00
* Description
2016-01-10 12:36:56 +00:00
This layer supports [[http://www.rust-lang.org/ ][Rust ]] development in Spacemacs.
2015-06-10 16:44:30 +00:00
2016-01-10 12:36:56 +00:00
It has auto-completion and navigation support through [[https://github.com/phildawes/racer ][Racer ]] and supports [[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
To enable automatic buffer formatting on save, set the variable =rust-enable-rustfmt-on-save= to =t= .
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '(
(rust :variables rust-enable-rustfmt-on-save t)))
#+END_SRC
2015-06-10 16:44:30 +00:00
* Key bindings
2015-06-16 08:27:54 +00:00
| Key Binding | Description |
|-------------+-----------------------------------|
| ~SPC m c c~ | compile project with Cargo |
| ~SPC m c t~ | run tests with Cargo |
| ~SPC m c d~ | generate documentation with Cargo |
2015-07-01 05:37:31 +00:00
| ~SPC m c x~ | execute the project with Cargo |
2015-09-15 05:28:15 +00:00
| ~SPC m c C~ | remove build artifacts with Cargo |
2016-01-10 12:36:56 +00:00
| ~SPC m g g~ | jump to definition |
2016-01-11 14:43:22 +00:00
| ~SPC m =~ | reformat the buffer |