Change summary
crates/assistant_tools/src/edit_agent/create_file_parser.rs | 18 ++++++
1 file changed, 17 insertions(+), 1 deletion(-)
Detailed changes
@@ -4,7 +4,7 @@ use std::cell::LazyCell;
use util::debug_panic;
const START_MARKER: LazyCell<Regex> = LazyCell::new(|| Regex::new(r"\n?```\S*\n").unwrap());
-const END_MARKER: LazyCell<Regex> = LazyCell::new(|| Regex::new(r"\n```\s*$").unwrap());
+const END_MARKER: LazyCell<Regex> = LazyCell::new(|| Regex::new(r"(^|\n)```\s*$").unwrap());
#[derive(Debug)]
pub enum CreateFileParserEvent {
@@ -184,6 +184,22 @@ mod tests {
);
}
+ #[gpui::test(iterations = 10)]
+ fn test_empty_file(mut rng: StdRng) {
+ let mut parser = CreateFileParser::new();
+ assert_eq!(
+ parse_random_chunks(
+ indoc! {"
+ ```
+ ```
+ "},
+ &mut parser,
+ &mut rng
+ ),
+ "".to_string()
+ );
+ }
+
fn parse_random_chunks(input: &str, parser: &mut CreateFileParser, rng: &mut StdRng) -> String {
let chunk_count = rng.gen_range(1..=cmp::min(input.len(), 50));
let mut chunk_indices = (0..input.len()).choose_multiple(rng, chunk_count);