refactor: clean up redundant serde aliases in tools schema

This commit is contained in:
Riz Ashraf committed 2026-10-10 03:54:16 +01:00
1 parent 27416e4ee9
commit 2ae343d968
6 files changed
+171 -191

No files matched your search

+101
View File
@@ -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 },
}