refactor: clean up redundant serde aliases in tools schema
This commit is contained in:
1 parent
27416e4ee9
commit
2ae343d968
6 files changed
+171
-191
No files matched your search
@@ -0,0 +1,101 @@
|
||||
use schemars::JsonSchema;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
#[serde(tag = "action", rename_all = "snake_case")]
|
||||
pub enum NvimBufferTool {
|
||||
Read {
|
||||
file: String,
|
||||
start_line: Option<i64>,
|
||||
end_line: Option<i64>,
|
||||
},
|
||||
Replace {
|
||||
file: Option<String>,
|
||||
start_line: Option<i64>,
|
||||
end_line: Option<i64>,
|
||||
replacement_content: Option<String>,
|
||||
expected_content: Option<String>,
|
||||
edits: Option<Vec<BufferEdit>>,
|
||||
},
|
||||
Save {
|
||||
file: Option<String>,
|
||||
},
|
||||
Undo {
|
||||
steps: Option<i64>,
|
||||
},
|
||||
Redo {
|
||||
steps: Option<i64>,
|
||||
},
|
||||
CreateScratch {
|
||||
name: Option<String>,
|
||||
content: Option<String>,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
pub struct BufferEdit {
|
||||
pub file: String,
|
||||
pub start_line: i64,
|
||||
pub end_line: i64,
|
||||
pub replacement_content: String,
|
||||
pub expected_content: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
#[serde(tag = "action", rename_all = "snake_case")]
|
||||
pub enum NvimWorkspaceTool {
|
||||
ListBuffers,
|
||||
ListWindows,
|
||||
Focus {
|
||||
win_id: i64,
|
||||
},
|
||||
Split {
|
||||
direction: Option<String>,
|
||||
file: Option<String>,
|
||||
buf_id: Option<i64>,
|
||||
},
|
||||
Cwd {
|
||||
path: Option<String>,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
#[serde(tag = "action", rename_all = "snake_case")]
|
||||
pub enum NvimIntelligenceTool {
|
||||
Hover { file: String, line: i64, col: i64 },
|
||||
Definition { file: String, line: i64, col: i64 },
|
||||
References { file: String, line: i64, col: i64 },
|
||||
CodeAction { file: String, line: i64, col: i64 },
|
||||
Rename { file: String, line: i64, col: i64, new_name: String },
|
||||
Diagnostics { file: String },
|
||||
Outline { file: String },
|
||||
Query { file: String, query: Option<String>, preset: Option<String> },
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
#[serde(tag = "action", rename_all = "snake_case")]
|
||||
pub enum NvimUiTool {
|
||||
Highlight {
|
||||
buf_id: Option<i64>,
|
||||
start_line: i64,
|
||||
end_line: Option<i64>,
|
||||
highlight_group: Option<String>,
|
||||
duration_ms: Option<i64>,
|
||||
},
|
||||
GhostText {
|
||||
line: i64,
|
||||
text: String,
|
||||
highlight_group: Option<String>,
|
||||
},
|
||||
Clear {
|
||||
buf_id: Option<i64>,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
#[serde(tag = "action", rename_all = "snake_case")]
|
||||
pub enum NvimExecTool {
|
||||
Lua { code: String },
|
||||
Vimscript { code: String },
|
||||
Terminal { command: String },
|
||||
}
|
||||
Reference in new issue
Block a user