| # rust-analyzer |
| |
| rust-analyzer is a language server that provides IDE functionality for |
| writing Rust programs. You can use it with any editor that supports |
| the [Language Server |
| Protocol](https://microsoft.github.io/language-server-protocol/) (VS |
| Code, Vim, Emacs, Zed, etc). |
| |
| rust-analyzer features include go-to-definition, find-all-references, |
| refactorings and code completion. rust-analyzer also supports |
| integrated formatting (with rustfmt) and integrated diagnostics (with |
| rustc and clippy). |
| |
| Internally, rust-analyzer is structured as a set of libraries for |
| analyzing Rust code. See |
| [Architecture](https://rust-analyzer.github.io/book/contributing/architecture.html) |
| for more details. |
| |
| To improve this document, send a pull request: |
| [https://github.com/rust-lang/rust-analyzer](https://github.com/rust-lang/rust-analyzer/blob/master/docs/book/README.md) |
| |
| The manual is written in markdown and includes |
| some extra files which are generated from the source code. Run |
| `cargo test` and `cargo xtask codegen` to create these. |
| |
| If you have questions about using rust-analyzer, please ask them in the |
| ["IDEs and Editors"](https://users.rust-lang.org/c/ide/14) topic of Rust |
| users forum. |