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}