spacemacs/layers/+lang/rust
duianto ee811f7b13 Unify packages list parentheses style
problem:
some layer packages lists have the open and closing parentheses on the same line
as the first and last listed package, but most seem to have them on a separate
lines.

solution:
put the open and close parentheses on separate lines, except for lists with only
a single package, they are written on the same line as the variable name and
parentheses.

fix the lists indentation
2018-11-21 21:35:38 +00:00
..
img
config.el Add: rust-lsp 2018-11-05 22:58:28 +00:00
funcs.el Add: rust-lsp 2018-11-05 22:58:28 +00:00
packages.el Unify packages list parentheses style 2018-11-21 21:35:38 +00:00
README.org Add: rust-lsp 2018-11-05 22:58:28 +00:00

Rust layer

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

Description

This layer supports Rust development in Spacemacs.

Features:

  • Auto-completion and navigation support through lsp or Racer
  • support for the Rust package manager 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.

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 install the Rust Language Server.

Configuration of the lsp backend is done through the layer configuration variable rust-rls-cmd. The rust-rls-cmd is how the rust server should be launched. rust-rls-cmd defaults to rustup run nightly rls. The environment variable RLS_ROOT is used for configuration if rust-rls-cmd is set to nil. For additional configuration please see rust-lsp.

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 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