๐Ÿ“ฆ rust-lang / rust-analyzer

A Rust compiler front-end for IDEs

โ˜… 15.9k stars โ‘‚ 1.9k forks ๐Ÿ‘ 15.9k watching โš–๏ธ Apache License 2.0
hacktoberfestlsp-serverrust
๐Ÿ“ฅ Clone https://github.com/rust-lang/rust-analyzer.git
HTTPS git clone https://github.com/rust-lang/rust-analyzer.git
SSH git clone git@github.com:rust-lang/rust-analyzer.git
CLI gh repo clone rust-lang/rust-analyzer
Shoyu Vanilla (Flint) Shoyu Vanilla (Flint) Merge pull request #21485 from A4-Tacks/move-guard-clean-block b5eb57a 5 hours ago ๐Ÿ“ History
๐Ÿ“‚ master View all commits โ†’
๐Ÿ“ .cargo
๐Ÿ“ .github
๐Ÿ“ .vscode
๐Ÿ“ assets
๐Ÿ“ bench_data
๐Ÿ“ crates
๐Ÿ“ docs
๐Ÿ“ editors
๐Ÿ“ lib
๐Ÿ“ xtask
๐Ÿ“„ .editorconfig
๐Ÿ“„ .gitattributes
๐Ÿ“„ .gitignore
๐Ÿ“„ .typos.toml
๐Ÿ“„ Cargo.lock
๐Ÿ“„ Cargo.toml
๐Ÿ“„ clippy.toml
๐Ÿ“„ CONTRIBUTING.md
๐Ÿ“„ josh-sync.toml
๐Ÿ“„ LICENSE-APACHE
๐Ÿ“„ LICENSE-MIT
๐Ÿ“„ PRIVACY.md
๐Ÿ“„ README.md
๐Ÿ“„ rust-version
๐Ÿ“„ rustfmt.toml
๐Ÿ“„ triagebot.toml
๐Ÿ“„ README.md

rust-analyzer logo

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 (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 in the manual.

Quick Start

https://rust-analyzer.github.io/book/installation.html

Documentation

If you want to contribute to rust-analyzer check out the CONTRIBUTING.md or if you are just curious about how things work under the hood, see the Contributing section of the manual.

If you want to use rust-analyzer's language server with your editor of choice, check the manual. It also contains some tips & tricks to help you be more productive when using rust-analyzer.

Security and Privacy

See the security and privacy sections of the manual.

Communication

For usage and troubleshooting requests, please use "IDEs and Editors" category of the Rust forum:

https://users.rust-lang.org/c/ide/14

For questions about development and implementation, join rust-analyzer working group on Zulip:

https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer

Quick Links

  • Website: https://rust-analyzer.github.io/
  • Metrics: https://rust-analyzer.github.io/metrics/
  • API docs: https://rust-lang.github.io/rust-analyzer/ide/
  • Changelog: https://rust-analyzer.github.io/thisweek

License

rust-analyzer is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.