| # 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. |