mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 05:23:24 +00:00
docs: publish Explaining Rust Analyzer series
This commit is contained in:
parent
84302bdde8
commit
efa4a36a50
2 changed files with 9 additions and 11 deletions
|
@ -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), _) => {
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue