Restore accidentally deleted EditFileTool::still_streaming_ui_text
(#35871)
This was accidentally removed in #35844. Release Notes: - N/A Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
This commit is contained in:
parent
d5c4e4b7b2
commit
8430197df0
1 changed files with 85 additions and 0 deletions
|
@ -120,6 +120,8 @@ struct PartialInput {
|
||||||
display_description: String,
|
display_description: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const DEFAULT_UI_TEXT: &str = "Editing file";
|
||||||
|
|
||||||
impl Tool for EditFileTool {
|
impl Tool for EditFileTool {
|
||||||
fn name(&self) -> String {
|
fn name(&self) -> String {
|
||||||
"edit_file".into()
|
"edit_file".into()
|
||||||
|
@ -209,6 +211,22 @@ impl Tool for EditFileTool {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn still_streaming_ui_text(&self, input: &serde_json::Value) -> String {
|
||||||
|
if let Some(input) = serde_json::from_value::<PartialInput>(input.clone()).ok() {
|
||||||
|
let description = input.display_description.trim();
|
||||||
|
if !description.is_empty() {
|
||||||
|
return description.to_string();
|
||||||
|
}
|
||||||
|
|
||||||
|
let path = input.path.trim();
|
||||||
|
if !path.is_empty() {
|
||||||
|
return path.to_string();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFAULT_UI_TEXT.to_string()
|
||||||
|
}
|
||||||
|
|
||||||
fn run(
|
fn run(
|
||||||
self: Arc<Self>,
|
self: Arc<Self>,
|
||||||
input: serde_json::Value,
|
input: serde_json::Value,
|
||||||
|
@ -1352,6 +1370,73 @@ mod tests {
|
||||||
assert_eq!(actual, expected);
|
assert_eq!(actual, expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn still_streaming_ui_text_with_path() {
|
||||||
|
let input = json!({
|
||||||
|
"path": "src/main.rs",
|
||||||
|
"display_description": "",
|
||||||
|
"old_string": "old code",
|
||||||
|
"new_string": "new code"
|
||||||
|
});
|
||||||
|
|
||||||
|
assert_eq!(EditFileTool.still_streaming_ui_text(&input), "src/main.rs");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn still_streaming_ui_text_with_description() {
|
||||||
|
let input = json!({
|
||||||
|
"path": "",
|
||||||
|
"display_description": "Fix error handling",
|
||||||
|
"old_string": "old code",
|
||||||
|
"new_string": "new code"
|
||||||
|
});
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
EditFileTool.still_streaming_ui_text(&input),
|
||||||
|
"Fix error handling",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn still_streaming_ui_text_with_path_and_description() {
|
||||||
|
let input = json!({
|
||||||
|
"path": "src/main.rs",
|
||||||
|
"display_description": "Fix error handling",
|
||||||
|
"old_string": "old code",
|
||||||
|
"new_string": "new code"
|
||||||
|
});
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
EditFileTool.still_streaming_ui_text(&input),
|
||||||
|
"Fix error handling",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn still_streaming_ui_text_no_path_or_description() {
|
||||||
|
let input = json!({
|
||||||
|
"path": "",
|
||||||
|
"display_description": "",
|
||||||
|
"old_string": "old code",
|
||||||
|
"new_string": "new code"
|
||||||
|
});
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
EditFileTool.still_streaming_ui_text(&input),
|
||||||
|
DEFAULT_UI_TEXT,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn still_streaming_ui_text_with_null() {
|
||||||
|
let input = serde_json::Value::Null;
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
EditFileTool.still_streaming_ui_text(&input),
|
||||||
|
DEFAULT_UI_TEXT,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
fn init_test(cx: &mut TestAppContext) {
|
fn init_test(cx: &mut TestAppContext) {
|
||||||
cx.update(|cx| {
|
cx.update(|cx| {
|
||||||
let settings_store = SettingsStore::test(cx);
|
let settings_store = SettingsStore::test(cx);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue