Skip to content

Latest commit

 

History

History
95 lines (78 loc) · 3.35 KB

README.org

File metadata and controls

95 lines (78 loc) · 3.35 KB

lang/rust

Table of Contents

Description

This module adds support for the Rust language and integration for its tools, e.g. cargo.

  • Code completion (racer)
  • Syntax checking (flycheck)
  • LSP support (for rls and rust-analyzer) (rustic)
  • Snippets

Module Flags

  • +lsp to add support Language server protocol.

Plugins

Hacks

  • rustic has been modified not to automatically install lsp-mode or elgot if they’re missing. Doom expects you to enable the :tools lsp module yourself.
  • rustic’s LSP integration has been disabled in favor of the rls/rust-analyzer support provider by the lsp-mode package.

Prerequisites

This module only requires rust, which can be acquired through rustup:

curl https://sh.rustup.rs -sSf | sh

Optionally, this module also uses the following programs:

  • racer (if not using LSP): cargo +nightly install racer (requires rust nightly)
  • RLS or rust-analyzer (for LSP users)
  • rustfmt for :editor format: rustup component add rustfmt-preview
  • The following commands require:
    • cargo-process-check: cargo install cargo-check
    • cargo-process-clippy: rustup component add clippy-preview

Features

This module also supports LSP, if you have the Rust Language Server or rust-analyzer installed. To enable it, you must enable the :tools lsp module and the +lsp flag on this module.

Keybinds

BindingDescription
<localleader> b acargo audit
<localleader> b bcargo build
<localleader> b Bcargo bench
<localleader> b ccargo check
<localleader> b Ccargo clippy
<localleader> b dcargo doc
<localleader> b ncargo update
<localleader> b ocargo outdated
<localleader> b rcargo run
<localleader> t acargo test
<localleader> t trun current test

Configuration

Enable rust-analyzer

You’ll need rust-analyzer installed on your system, then use the following:

;; in $DOOMDIR/config.el
(setq rustic-lsp-server 'rust-analyzer)

Enabling elgot support for Rust

Doom doesn’t have eglot support (yet), but if you’ve installed it yourself and want rust to use eglot instead of LSP, use the following:

;; in $DOOMDIR/config.el
(after! rustic
  (setq rustic-lsp-server 'rust-analyzer ; optional
        rustic-lsp-client 'eglot))

Troubleshooting