Skip to content
Ivan Yonchovski edited this page Apr 24, 2020 · 25 revisions

Table of Contents

LSP support for Rust

  • lsp-rust-server Choose LSP server (default is RLS)

  • lsp-rust-switch-server Switch priorities of lsp servers

RLS

Customization

This is an incomplete list of the available options

  • lsp-rust-rls-server-command change command to start RLS

  • lsp-rust-show-hover-context turn off hover tooltips

rust-analyzer

Customization

lsp-rust-analyzer-server-command change command to start rust-analyzer

lsp-rust-analyzer-server-display-inlay-hints toggle inlay hints

lsp-rust-analyzer-max-inlay-hint-length max inlay hint length

lsp-rust-analyzer-cargo-watch-enable toggle cargo watch

lsp-rust-analyzer-cargo-watch-command cargo watch command, e.g. check or clippy

lsp-rust-analyzer-cargo-watch-args extra args passed to cargo watch command, should be specified as a vector of strings

lsp-rust-analyzer-use-client-watching toggle client side watching

lsp-rust-analyzer-cargo-all-targets should run cargo watch for all targets or not

lsp-rust-analyzer-exclude-globs a list of glob patterns for Cargo package exclusion

lsp-rust-analyzer-enabled-feature-flags a list of feature flags that should be enabled

Commands

lsp-rust-analyzer-syntax-tree

Display syntax tree for current buffer

lsp-rust-analyzer-status

Display status information for rust-analyzer

lsp-rust-analyzer-join-lines

Join selected lines into one, smartly fixing up whitespace and trailing commas

before

after

inlay-hints

lsp-rust-analyzer-inlay-hints-mode enables displaying of inlay hints

NOTE: the inlay hints interact badly with the lsp-ui sideline, because it doesn't seem to consider the overlays in its width calculation, which often leads to lines wrapping around.

Macro expansion

lsp-rust-analyzer-expand-macro expand macro call at point recursively

Use your own function for displaying macro expansion by customizing lsp-rust-analyzer-macro-expansion-method

Formatted and highlighted result with the default function of rustic.

auto-import

Get a list of possible auto import candidates with lsp-execute-code-action

Caveats