1#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct Lsp {
4 #[prost(message, repeated, tag = "1")]
5 pub diagnostics: ::prost::alloc::vec::Vec<PublishDiagnosticsParams>,
6 #[prost(message, repeated, tag = "2")]
7 pub actions: ::prost::alloc::vec::Vec<CodeAction>,
8}
9#[derive(Clone, PartialEq, ::prost::Message)]
10pub struct PublishDiagnosticsParams {
11 #[prost(string, tag = "1")]
12 pub uri: ::prost::alloc::string::String,
13 #[prost(message, repeated, tag = "2")]
14 pub diagnostics: ::prost::alloc::vec::Vec<Diagnostic>,
15}
16#[derive(Clone, PartialEq, ::prost::Message)]
17pub struct Diagnostic {
18 #[prost(message, optional, tag = "1")]
19 pub range: ::core::option::Option<Range>,
20 #[prost(string, tag = "2")]
21 pub message: ::prost::alloc::string::String,
22 #[prost(enumeration = "DiagnosticSeverity", tag = "3")]
23 pub severity: i32,
24 #[prost(string, optional, tag = "4")]
25 pub code: ::core::option::Option<::prost::alloc::string::String>,
26 #[prost(message, optional, tag = "5")]
27 pub code_description: ::core::option::Option<CodeDescription>,
28 #[prost(message, repeated, tag = "6")]
29 pub related_information: ::prost::alloc::vec::Vec<DiagnosticRelatedInformation>,
30}
31#[derive(Clone, Copy, PartialEq, ::prost::Message)]
32pub struct Range {
33 #[prost(message, optional, tag = "1")]
34 pub start: ::core::option::Option<Position>,
35 #[prost(message, optional, tag = "2")]
36 pub end: ::core::option::Option<Position>,
37}
38#[derive(Clone, Copy, PartialEq, ::prost::Message)]
39pub struct Position {
40 #[prost(int32, optional, tag = "1")]
41 pub line: ::core::option::Option<i32>,
42 #[prost(int32, optional, tag = "2")]
43 pub character: ::core::option::Option<i32>,
44}
45#[derive(Clone, PartialEq, ::prost::Message)]
46pub struct CodeAction {
47 #[prost(string, tag = "1")]
48 pub title: ::prost::alloc::string::String,
49 #[prost(message, repeated, tag = "2")]
50 pub diagnostics: ::prost::alloc::vec::Vec<Diagnostic>,
51 #[prost(message, optional, tag = "3")]
52 pub edit: ::core::option::Option<WorkspaceEdit>,
53}
54#[derive(Clone, PartialEq, ::prost::Message)]
55pub struct WorkspaceEdit {
56 #[prost(message, repeated, tag = "1")]
57 pub document_changes: ::prost::alloc::vec::Vec<TextDocumentEdit>,
58}
59#[derive(Clone, PartialEq, ::prost::Message)]
60pub struct TextDocumentEdit {
61 #[prost(message, optional, tag = "1")]
62 pub text_document: ::core::option::Option<TextDocumentIdentifier>,
63 #[prost(message, repeated, tag = "2")]
64 pub edits: ::prost::alloc::vec::Vec<TextEdit>,
65}
66#[derive(Clone, PartialEq, ::prost::Message)]
67pub struct TextDocumentIdentifier {
68 #[prost(string, tag = "1")]
69 pub uri: ::prost::alloc::string::String,
70}
71#[derive(Clone, PartialEq, ::prost::Message)]
72pub struct TextEdit {
73 #[prost(message, optional, tag = "1")]
74 pub range: ::core::option::Option<Range>,
75 #[prost(string, tag = "2")]
76 pub new_text: ::prost::alloc::string::String,
77}
78#[derive(Clone, PartialEq, ::prost::Message)]
79pub struct CodeDescription {
80 #[prost(string, tag = "1")]
81 pub href: ::prost::alloc::string::String,
82}
83#[derive(Clone, PartialEq, ::prost::Message)]
84pub struct DiagnosticRelatedInformation {
85 #[prost(message, optional, tag = "1")]
86 pub location: ::core::option::Option<Location>,
87 #[prost(string, tag = "2")]
88 pub message: ::prost::alloc::string::String,
89}
90#[derive(Clone, PartialEq, ::prost::Message)]
91pub struct Location {
92 #[prost(string, tag = "1")]
93 pub uri: ::prost::alloc::string::String,
94 #[prost(message, optional, tag = "2")]
95 pub range: ::core::option::Option<Range>,
96}
97#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
98#[repr(i32)]
99pub enum DiagnosticSeverity {
100 Unspecified = 0,
101 Error = 1,
102 Warning = 2,
103 Information = 3,
104 Hint = 4,
105}
106impl DiagnosticSeverity {
107 pub fn as_str_name(&self) -> &'static str {
112 match self {
113 Self::Unspecified => "DIAGNOSTIC_SEVERITY_UNSPECIFIED",
114 Self::Error => "DIAGNOSTIC_SEVERITY_ERROR",
115 Self::Warning => "DIAGNOSTIC_SEVERITY_WARNING",
116 Self::Information => "DIAGNOSTIC_SEVERITY_INFORMATION",
117 Self::Hint => "DIAGNOSTIC_SEVERITY_HINT",
118 }
119 }
120 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
122 match value {
123 "DIAGNOSTIC_SEVERITY_UNSPECIFIED" => Some(Self::Unspecified),
124 "DIAGNOSTIC_SEVERITY_ERROR" => Some(Self::Error),
125 "DIAGNOSTIC_SEVERITY_WARNING" => Some(Self::Warning),
126 "DIAGNOSTIC_SEVERITY_INFORMATION" => Some(Self::Information),
127 "DIAGNOSTIC_SEVERITY_HINT" => Some(Self::Hint),
128 _ => None,
129 }
130 }
131}