Skip to content
brotzeit edited this page May 1, 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-display-chaining-hints show inlay type hints for method chains

lsp-rust-analyzer-display-parameter-hints show function parameter name inlay hints at the call site

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

lsp-rust-analyzer-lru-capacity Number of syntax trees rust-analyzer keeps in memory

lsp-rust-analyzer-cargo-override-command Advanced option, fully override the command rust-analyzer uses for checking. The command should include --message=format=json or similar option

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

Clone this wiki locally