cairo_lang_language_server/lsp/
ext.rs1use lsp_types::notification::Notification;
4use lsp_types::request::Request;
5use lsp_types::{TextDocumentPositionParams, Url};
6use serde::{Deserialize, Serialize};
7
8pub(crate) struct ProvideVirtualFile;
10
11#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
12pub(crate) struct ProvideVirtualFileRequest {
13 pub uri: Url,
14}
15
16#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
17pub(crate) struct ProvideVirtualFileResponse {
18 pub content: Option<String>,
19}
20
21impl Request for ProvideVirtualFile {
22 type Params = ProvideVirtualFileRequest;
23 type Result = ProvideVirtualFileResponse;
24 const METHOD: &'static str = "vfs/provide";
25}
26
27pub struct ViewAnalyzedCrates;
29
30impl Request for ViewAnalyzedCrates {
31 type Params = ();
32 type Result = String;
33 const METHOD: &'static str = "cairo/viewAnalyzedCrates";
34}
35
36pub struct ExpandMacro;
38
39impl Request for ExpandMacro {
40 type Params = TextDocumentPositionParams;
41 type Result = Option<String>;
42 const METHOD: &'static str = "cairo/expandMacro";
43}
44
45#[derive(Debug)]
47pub struct CorelibVersionMismatch;
48
49impl Notification for CorelibVersionMismatch {
50 type Params = String;
51 const METHOD: &'static str = "cairo/corelib-version-mismatch";
52}
53
54#[derive(Debug)]
56pub struct ScarbMetadataFailed;
57
58impl Notification for ScarbMetadataFailed {
59 type Params = ();
60 const METHOD: &'static str = "cairo/scarb-metadata-failed";
61}
62
63#[derive(Debug)]
65pub struct ProcMacroServerInitializationFailed;
66
67#[derive(Debug, Serialize, Deserialize)]
68#[serde(rename_all = "camelCase", rename_all_fields = "camelCase", tag = "reason")]
69pub enum ProcMacroServerInitializationFailedParams {
70 NoMoreRetries { retries: u32, in_minutes: u64 },
71 SpawnFail,
72}
73
74impl Notification for ProcMacroServerInitializationFailed {
75 type Params = ProcMacroServerInitializationFailedParams;
76 const METHOD: &'static str = "cairo/procMacroServerInitializationFailed";
77}