1use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
8pub struct HoverParams {
9 pub file_path: String,
11 pub line: u32,
13 pub character: u32,
15}
16
17#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
19pub struct DefinitionParams {
20 pub file_path: String,
22 pub line: u32,
24 pub character: u32,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
30pub struct ReferencesParams {
31 pub file_path: String,
33 pub line: u32,
35 pub character: u32,
37 #[serde(default)]
39 pub include_declaration: bool,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
44pub struct DiagnosticsParams {
45 pub file_path: String,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
51pub struct RenameParams {
52 pub file_path: String,
54 pub line: u32,
56 pub character: u32,
58 pub new_name: String,
60}
61
62#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
64pub struct CompletionsParams {
65 pub file_path: String,
67 pub line: u32,
69 pub character: u32,
71 pub trigger: Option<String>,
73}
74
75#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
77pub struct DocumentSymbolsParams {
78 pub file_path: String,
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
84pub struct FormatDocumentParams {
85 pub file_path: String,
87 #[serde(default = "default_tab_size")]
89 pub tab_size: u32,
90 #[serde(default = "default_insert_spaces")]
92 pub insert_spaces: bool,
93}
94
95const fn default_tab_size() -> u32 {
96 4
97}
98
99const fn default_insert_spaces() -> bool {
100 true
101}
102
103#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
105pub struct WorkspaceSymbolParams {
106 pub query: String,
108 #[serde(skip_serializing_if = "Option::is_none")]
110 pub kind_filter: Option<String>,
111 #[serde(default = "default_max_results")]
113 pub limit: u32,
114}
115
116const fn default_max_results() -> u32 {
117 100
118}
119
120#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
122pub struct CodeActionsParams {
123 pub file_path: String,
125 pub start_line: u32,
127 pub start_character: u32,
129 pub end_line: u32,
131 pub end_character: u32,
133 #[serde(skip_serializing_if = "Option::is_none")]
135 pub kind_filter: Option<String>,
136}
137
138#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
140pub struct CallHierarchyPrepareParams {
141 pub file_path: String,
143 pub line: u32,
145 pub character: u32,
147}
148
149#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
151pub struct CallHierarchyCallsParams {
152 pub item: serde_json::Value,
154}