docs: publish Explaining Rust Analyzer series

This commit is contained in:
Aleksey Kladov 2021-07-19 23:40:20 +03:00
parent 84302bdde8
commit efa4a36a50
2 changed files with 9 additions and 11 deletions

View file

@ -10,7 +10,7 @@ use always_assert::always;
use crossbeam_channel::{select, Receiver}; use crossbeam_channel::{select, Receiver};
use ide::{FileId, PrimeCachesProgress}; use ide::{FileId, PrimeCachesProgress};
use ide_db::base_db::VfsPath; use ide_db::base_db::VfsPath;
use lsp_server::{Connection, Notification, Request, Response}; use lsp_server::{Connection, Notification, Request};
use lsp_types::notification::Notification as _; use lsp_types::notification::Notification as _;
use vfs::ChangeKind; use vfs::ChangeKind;
@ -60,7 +60,7 @@ enum Event {
#[derive(Debug)] #[derive(Debug)]
pub(crate) enum Task { pub(crate) enum Task {
Response(Response), Response(lsp_server::Response),
Diagnostics(Vec<(FileId, Vec<lsp_types::Diagnostic>)>), Diagnostics(Vec<(FileId, Vec<lsp_types::Diagnostic>)>),
PrimeCaches(PrimeCachesProgress), PrimeCaches(PrimeCachesProgress),
FetchWorkspace(ProjectWorkspaceProgress), FetchWorkspace(ProjectWorkspaceProgress),
@ -466,7 +466,7 @@ impl GlobalState {
self.register_request(&req, request_received); self.register_request(&req, request_received);
if self.shutdown_requested { if self.shutdown_requested {
self.respond(Response::new_err( self.respond(lsp_server::Response::new_err(
req.id, req.id,
lsp_server::ErrorCode::InvalidRequest as i32, lsp_server::ErrorCode::InvalidRequest as i32,
"Shutdown already requested.".to_owned(), "Shutdown already requested.".to_owned(),
@ -674,7 +674,7 @@ impl GlobalState {
}, },
|this, resp| { |this, resp| {
log::debug!("config update response: '{:?}", resp); log::debug!("config update response: '{:?}", resp);
let Response { error, result, .. } = resp; let lsp_server::Response { error, result, .. } = resp;
match (error, result) { match (error, result) {
(Some(err), _) => { (Some(err), _) => {

View file

@ -3,13 +3,8 @@
This document describes the high-level architecture of rust-analyzer. This document describes the high-level architecture of rust-analyzer.
If you want to familiarize yourself with the code base, you are just in the right place! If you want to familiarize yourself with the code base, you are just in the right place!
See also the [guide](./guide.md), which walks through a particular snapshot of rust-analyzer code base. You might also enjoy ["Explaining Rust Analyzer"](https://www.youtube.com/playlist?list=PLhb66M_x9UmrqXhQuIpWC5VgTdrGxMx3y) series on YouTube.
It goes deeper than what is covered in this document, but will take some time to watch.
Yet another resource is this playlist with videos about various parts of the analyzer:
https://www.youtube.com/playlist?list=PL85XCvVPmGQho7MZkdW-wtPtuJcFpzycE
Note that the guide and videos are pretty dated, this document should be, in general, fresher.
See also these implementation-related blog posts: See also these implementation-related blog posts:
@ -19,6 +14,9 @@ See also these implementation-related blog posts:
* https://rust-analyzer.github.io/blog/2020/09/28/how-to-make-a-light-bulb.html * https://rust-analyzer.github.io/blog/2020/09/28/how-to-make-a-light-bulb.html
* https://rust-analyzer.github.io/blog/2020/10/24/introducing-ungrammar.html * https://rust-analyzer.github.io/blog/2020/10/24/introducing-ungrammar.html
For older, by now mostly outdated stuff, see the [guide](./guide.md) and [another playlist](https://www.youtube.com/playlist?list=PL85XCvVPmGQho7MZkdW-wtPtuJcFpzycE).
## Bird's Eye View ## Bird's Eye View
![](https://user-images.githubusercontent.com/4789492/107129398-0ab70f00-687a-11eb-9bfc-d4eb023aec06.png) ![](https://user-images.githubusercontent.com/4789492/107129398-0ab70f00-687a-11eb-9bfc-d4eb023aec06.png)