Language Server Index Format (LSIF) is a standard format for language servers or other programming tools to dump their knowledge about a code workspace (article). lsif-rust
is an attempt to implement such a tool for Rust since none exists for the language as listed on lsif.dev.
sh
cargo install lsif-rust
Run the command in the same directory as Cargo.toml
. Requires nightly Rust (for -Z save-analysis
).
```sh lsif-rust 0.0.1 LSIF Indexer for Rust
USAGE: lsif-rust [OPTIONS]
FLAGS: -h, --help Prints help information -V, --version Prints version information
OPTIONS:
-o, --output
lsif-rust
is under heavy development and very much still a WIP.
Checklisted below are the features that have been implemented:
textdocument/definition
](https://microsoft.github.io/language-server-protocol/specifications/lsif/0.4.0/specification/#definition)textdocument/declaration
](https://microsoft.github.io/language-server-protocol/specifications/lsif/0.4.0/specification/#declaration)textdocument/hover
](https://microsoft.github.io/language-server-protocol/specifications/lsif/0.4.0/specification/#hover)textdocument/references
](https://microsoft.github.io/language-server-protocol/specifications/lsif/0.4.0/specification/#references)textdocument/implementation
](https://microsoft.github.io/language-server-protocol/specifications/lsif/0.4.0/specification/#implementation)textdocument/typeDefinition
](https://microsoft.github.io/language-server-protocol/specifications/lsif/0.4.0/specification/#typeDefinition)textdocument/foldingRange
](https://microsoft.github.io/language-server-protocol/specifications/lsif/0.4.0/specification/#foldingRange)textdocument/documentLink
](https://microsoft.github.io/language-server-protocol/specifications/lsif/0.4.0/specification/#documentLink)textdocument/documentSymbol
](https://microsoft.github.io/language-server-protocol/specifications/lsif/0.4.0/specification/#documentSymbol)textdocument/diagnostic
](https://microsoft.github.io/language-server-protocol/specifications/lsif/0.4.0/specification/#diagnostic)Other features (non-exhaustive):