@@ -1,4 +1,4 @@
-use crate::schema::json_schema_for;
+use crate::{replace::replace_with_flexible_indent, schema::json_schema_for};
use anyhow::{anyhow, Context as _, Result};
use assistant_tool::{ActionLog, Tool};
use gpui::{App, AppContext, Entity, Task};
@@ -188,7 +188,11 @@ impl Tool for FindReplaceFileTool {
let result = cx
.background_spawn(async move {
- replace_exact(&input.find, &input.replace, &snapshot).await
+ // Try to match exactly
+ replace_exact(&input.find, &input.replace, &snapshot)
+ .await
+ // If that fails, try being flexible about indentation
+ .or_else(|| replace_with_flexible_indent(&input.find, &input.replace, &snapshot))
})
.await;