Reduce visibility
This commit is contained in:
@@ -1,9 +1,7 @@
|
||||
//! The main loop of `rust-analyzer` responsible for dispatching LSP
|
||||
//! requests/replies and notifications back to the client.
|
||||
use std::{
|
||||
env,
|
||||
error::Error,
|
||||
fmt,
|
||||
env, fmt,
|
||||
ops::Range,
|
||||
panic,
|
||||
sync::Arc,
|
||||
@@ -28,31 +26,9 @@ use crate::{
|
||||
global_state::{file_id_to_url, GlobalState, GlobalStateSnapshot, Status},
|
||||
handlers, lsp_ext,
|
||||
request_metrics::RequestMetrics,
|
||||
Result,
|
||||
LspError, Result,
|
||||
};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct LspError {
|
||||
pub code: i32,
|
||||
pub message: String,
|
||||
}
|
||||
|
||||
impl LspError {
|
||||
pub const UNKNOWN_FILE: i32 = -32900;
|
||||
|
||||
pub fn new(code: i32, message: String) -> LspError {
|
||||
LspError { code, message }
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for LspError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
write!(f, "Language Server request failed with {}. ({})", self.code, self.message)
|
||||
}
|
||||
}
|
||||
|
||||
impl Error for LspError {}
|
||||
|
||||
pub fn main_loop(config: Config, connection: Connection) -> Result<()> {
|
||||
log::info!("initial config: {:#?}", config);
|
||||
|
||||
@@ -848,14 +824,7 @@ where
|
||||
let response = match result {
|
||||
Ok(resp) => Response::new_ok(id, &resp),
|
||||
Err(e) => match e.downcast::<LspError>() {
|
||||
Ok(lsp_error) => {
|
||||
if lsp_error.code == LspError::UNKNOWN_FILE {
|
||||
// Work-around for https://github.com/rust-analyzer/rust-analyzer/issues/1521
|
||||
Response::new_ok(id, ())
|
||||
} else {
|
||||
Response::new_err(id, lsp_error.code, lsp_error.message)
|
||||
}
|
||||
}
|
||||
Ok(lsp_error) => Response::new_err(id, lsp_error.code, lsp_error.message),
|
||||
Err(e) => {
|
||||
if is_canceled(&e) {
|
||||
Response::new_err(
|
||||
|
||||
Reference in New Issue
Block a user