spacemacs/layers/+lang/rust
Eivind Fonn 08561d8631 core: implement :depends for package declarations
This replaces the older pattern
:toggle (configuration-layer/package-usedp ..)

This implementation ensures that :disabled-for honors dependent packages, i.e.
if package a depends on package b, which is owned by layer c, and layer c is
disabled for layer d, then neither package a nor b will be configured for layer
d. Previously, this was only true for package a, but not b.

This commit also fixes:

- configuration-layer/describe-package now shows which post-init and pre-init
  functions are disabled, if any
- Does not recreate all layer objects unconditionally when calling
  configuration-layer/discover-layers. Previously, this led to all layers being
  recreated after e.g. `SPC h SPC`, without any of the dotfile information.
  Since this information is now necessary for
  configuration-layer/describe-package, it’s important that we don’t clear the
  indexed layers when invoking this function.
2017-06-22 11:53:05 +02:00
..
img
config.el Bump year in copyright headers 2017-01-05 23:08:17 -05:00
funcs.el Bump year in copyright headers 2017-01-05 23:08:17 -05:00
packages.el core: implement :depends for package declarations 2017-06-22 11:53:05 +02:00
README.org update docs to the new toc-org format 2017-05-22 18:35:37 +03:00

Rust contribution layer for Spacemacs

/TakeV/spacemacs/media/commit/ff333c3c3eb031587c19067ba41290c5be1fd513/layers/+lang/rust/img/rust.png

Description

This layer supports Rust development in Spacemacs.

It has auto-completion and navigation support through Racer and supports Cargo.

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.

Racer

You must install 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 installation instructions.

To enable auto-completion, ensure that the auto-completion layer is enabled.

Cargo

Cargo is a project management command line tool for Rust. Installation instructions can be found on the main page of 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 run the current test with Cargo
SPC m c i create a new project with Cargo (init)
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 u update dependencies with Cargo
SPC m c x execute 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