1pub mod child_registry;
2pub mod client;
3pub mod diagnostics;
4pub mod document;
5pub mod environmental;
6pub mod jsonrpc;
7pub mod manager;
8pub mod position;
9pub mod pull_params;
10pub mod registry;
11pub mod roots;
12pub mod transport;
13pub mod tsconfig_membership;
14
15#[derive(Debug)]
17pub enum LspError {
18 Io(std::io::Error),
19 Json(serde_json::Error),
20 ServerNotReady(String),
21 Timeout(String),
22 ServerError { code: i32, message: String },
23 NotFound(String),
24}
25
26impl std::fmt::Display for LspError {
27 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
28 match self {
29 Self::Io(err) => write!(f, "I/O error: {err}"),
30 Self::Json(err) => write!(f, "JSON error: {err}"),
31 Self::ServerNotReady(message) => write!(f, "server not ready: {message}"),
32 Self::Timeout(message) => write!(f, "timeout: {message}"),
33 Self::ServerError { code, message } => {
34 write!(f, "server error {code}: {message}")
35 }
36 Self::NotFound(message) => write!(f, "not found: {message}"),
37 }
38 }
39}
40
41impl std::error::Error for LspError {}
42
43impl From<std::io::Error> for LspError {
44 fn from(value: std::io::Error) -> Self {
45 Self::Io(value)
46 }
47}
48
49impl From<serde_json::Error> for LspError {
50 fn from(value: serde_json::Error) -> Self {
51 Self::Json(value)
52 }
53}