style(clippy): auto-fix code style issues and unnecessary map_or allocations detected by cargo clippy

This commit is contained in:
Riz Ashraf committed 2026-09-27 22:38:08 +01:00
1 parent febd48c65d
commit 706e9ad172
9 files changed
+131 -74

No files matched your search

+69 -46
View File
@@ -64,7 +64,7 @@ async fn is_interactive(socket_path: &str) -> bool {
if socket_path.contains("agy-headless-nvim") {
return false;
}
if let Ok(output) = tokio::process::Command::new("nvim")
.arg("--server")
.arg(socket_path)
@@ -169,18 +169,22 @@ static NVIM_STATE: LazyLock<Arc<std::sync::Mutex<NvimState>>> =
LazyLock::new(|| Arc::new(std::sync::Mutex::new(NvimState::default())));
fn handle_nvim_notification(params: &[rmpv::Value]) {
if params.is_empty() { return; }
if params.is_empty() {
return;
}
if let rmpv::Value::String(event) = &params[0] {
match event.as_str().unwrap_or("") {
"CursorMoved" => {
if params.len() > 1
&& let rmpv::Value::Array(pos) = &params[1]
&& pos.len() >= 4
&& let (rmpv::Value::Integer(row), rmpv::Value::Integer(col)) = (&pos[1], &pos[2]) {
let mut state = NVIM_STATE.lock().unwrap_or_else(|e| e.into_inner());
state.cursor = format!("Line: {}, Column: {}", row, col);
}
},
&& pos.len() >= 4
&& let (rmpv::Value::Integer(row), rmpv::Value::Integer(col)) =
(&pos[1], &pos[2])
{
let mut state = NVIM_STATE.lock().unwrap_or_else(|e| e.into_inner());
state.cursor = format!("Line: {}, Column: {}", row, col);
}
}
"TextChanged" => {
tracing::debug!("Shadow buffer text changed event received");
}
@@ -195,28 +199,32 @@ async fn get_nvim_connection() -> Result<mpsc::Sender<NvimRequest>, String> {
{
let mut conn_lock = NVIM_CONN.lock().unwrap_or_else(|e| e.into_inner());
if let Some(sender) = conn_lock.as_ref() {
if !sender.is_closed() {
let current_socket = {
let active_lock = ACTIVE_SOCKET.lock().unwrap_or_else(|e| e.into_inner());
active_lock.clone()
};
if let Some(sender) = conn_lock.as_ref()
&& !sender.is_closed()
{
let current_socket = {
let active_lock = ACTIVE_SOCKET.lock().unwrap_or_else(|e| e.into_inner());
active_lock.clone()
};
if let Some(ref interactive) = interactive_socket {
if Some(interactive.clone()) != current_socket {
tracing::info!("Interactive Preemption: New Neovim instance detected at {}. Disconnecting from current.", interactive);
should_kill_headless = true;
*conn_lock = None;
{
let mut active_lock2 = ACTIVE_SOCKET.lock().unwrap_or_else(|e| e.into_inner());
*active_lock2 = None;
}
} else {
return Ok(sender.clone());
if let Some(ref interactive) = interactive_socket {
if Some(interactive.clone()) != current_socket {
tracing::info!(
"Interactive Preemption: New Neovim instance detected at {}. Disconnecting from current.",
interactive
);
should_kill_headless = true;
*conn_lock = None;
{
let mut active_lock2 =
ACTIVE_SOCKET.lock().unwrap_or_else(|e| e.into_inner());
*active_lock2 = None;
}
} else {
return Ok(sender.clone());
}
} else {
return Ok(sender.clone());
}
}
}
@@ -238,7 +246,10 @@ async fn get_nvim_connection() -> Result<mpsc::Sender<NvimRequest>, String> {
spawn_headless_nvim().await?
};
tracing::info!("Establishing new persistent connection to Neovim at {}", socket_path);
tracing::info!(
"Establishing new persistent connection to Neovim at {}",
socket_path
);
#[cfg(windows)]
let stream = {
@@ -308,12 +319,14 @@ async fn get_nvim_connection() -> Result<mpsc::Sender<NvimRequest>, String> {
if let Some((_, reply_sender)) = pending_clone2.remove(&msgid) {
let _ = reply_sender.send(Ok(val));
}
} else if arr.len() >= 3 && arr[0] == rmpv::Value::Integer(2.into())
} else if arr.len() >= 3
&& arr[0] == rmpv::Value::Integer(2.into())
&& let rmpv::Value::String(method) = &arr[1]
&& method.as_str().unwrap_or("") == "mcp_event"
&& let rmpv::Value::Array(params) = &arr[2] {
handle_nvim_notification(params);
}
&& method.as_str().unwrap_or("") == "mcp_event"
&& let rmpv::Value::Array(params) = &arr[2]
{
handle_nvim_notification(params);
}
}
continue;
}
@@ -407,11 +420,13 @@ async fn get_nvim_connection() -> Result<mpsc::Sender<NvimRequest>, String> {
]),
]);
let (reply_tx, _reply_rx) = tokio::sync::oneshot::channel();
let _ = tx_clone.send(NvimRequest {
msgid,
req,
reply: reply_tx,
}).await;
let _ = tx_clone
.send(NvimRequest {
msgid,
req,
reply: reply_tx,
})
.await;
tracing::info!("Injected bidirectional event tracking autocmds into Neovim");
});
@@ -781,7 +796,8 @@ pub async fn run_mcp_loop(app_name: &str, app_version: &str) {
id,
result: Some(json!({"resources": []})),
error: None,
}).await;
})
.await;
}
"resources/templates/list" => {
send_response(JsonRpcResponse {
@@ -789,7 +805,8 @@ pub async fn run_mcp_loop(app_name: &str, app_version: &str) {
id,
result: Some(json!({"resourceTemplates": []})),
error: None,
}).await;
})
.await;
}
"prompts/list" => {
send_response(JsonRpcResponse {
@@ -797,7 +814,8 @@ pub async fn run_mcp_loop(app_name: &str, app_version: &str) {
id,
result: Some(json!({"prompts": []})),
error: None,
}).await;
})
.await;
}
"tools/list" => {
@@ -1428,12 +1446,14 @@ pub async fn run_mcp_loop(app_name: &str, app_version: &str) {
Err(e) => send_error(id, -32603, &e).await,
}
}
"nvim_read_file" => {
if let Some(file) = args.get("file").and_then(|v| v.as_str()) {
let start_line = args.get("start_line").and_then(|v| v.as_i64()).unwrap_or(1);
let end_line = args.get("end_line").and_then(|v| v.as_i64()).unwrap_or(-1);
let start_line =
args.get("start_line").and_then(|v| v.as_i64()).unwrap_or(1);
let end_line =
args.get("end_line").and_then(|v| v.as_i64()).unwrap_or(-1);
let escaped_file = file.replace('\\', "\\\\").replace('"', "\\\"");
let code = format!("
local file = \"{escaped_file}\"
@@ -1459,14 +1479,15 @@ pub async fn run_mcp_loop(app_name: &str, app_version: &str) {
send_error(id, -32602, "Missing 'file'").await;
}
}
"nvim_search_file" => {
if let (Some(file), Some(pattern)) = (
args.get("file").and_then(|v| v.as_str()),
args.get("pattern").and_then(|v| v.as_str()),
) {
let escaped_file = file.replace('\\', "\\\\").replace('"', "\\\"");
let escaped_pattern = pattern.replace('\\', "\\\\").replace('"', "\\\"");
let escaped_pattern =
pattern.replace('\\', "\\\\").replace('"', "\\\"");
let code = format!("
local file = \"{escaped_file}\"
local pattern = \"{escaped_pattern}\"
@@ -1545,7 +1566,9 @@ pub async fn run_mcp_loop(app_name: &str, app_version: &str) {
let exe_path = std::env::current_exe()
.map(|p| p.to_string_lossy().to_string())
.unwrap_or_else(|_| "unknown".to_string());
let socket = get_socket_path().await.unwrap_or_else(|e| format!("Error: {}", e));
let socket = get_socket_path()
.await
.unwrap_or_else(|e| format!("Error: {}", e));
let info = format!(
"Server: {}\nVersion: {}\nOS: {}\nExecutable: {}\nBackend Socket: {}",
app_name, app_version, os, exe_path, socket