Clarify intro in README and manual

The first sentence a new user should see should ideally answer the
questions:

* What is rust-analyzer?
* Why might I want to use it?

The vast majority of users will be interested in using rust-analyzer
inside their favourite editor. We should clarify that rust-analyzer is
an LSP implementation and that it supports all the classic IDE
features.

Whilst it's also true that rust-analyzer is modular and organised into
libraries, the first impression should (I think) focus on an overview
and the primary use case.
This commit is contained in:
Wilfred Hughes 2025-09-08 16:45:58 +01:00
parent a91fb2b9a1
commit 365be20980
2 changed files with 29 additions and 9 deletions

View File

@ -4,8 +4,21 @@
alt="rust-analyzer logo"> alt="rust-analyzer logo">
</p> </p>
rust-analyzer is a modular compiler frontend for the Rust language. rust-analyzer is a language server that provides IDE functionality for
It is a part of a larger rls-2.0 effort to create excellent IDE support for Rust. 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)
in the manual.
## Quick Start ## Quick Start

View File

@ -1,13 +1,20 @@
# rust-analyzer # rust-analyzer
At its core, rust-analyzer is a **library** for semantic analysis of rust-analyzer is a language server that provides IDE functionality for
Rust code as it changes over time. This manual focuses on a specific writing Rust programs. You can use it with any editor that supports
usage of the library -- running it as part of a server that implements
the [Language Server the [Language Server
Protocol](https://microsoft.github.io/language-server-protocol/) (LSP). Protocol](https://microsoft.github.io/language-server-protocol/) (VS
The LSP allows various code editors, like VS Code, Emacs or Vim, to Code, Vim, Emacs, Zed, etc).
implement semantic features like completion or goto definition by
talking to an external language server process. 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: 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) [https://github.com/rust-lang/rust-analyzer](https://github.com/rust-lang/rust-analyzer/blob/master/docs/book/README.md)