diff --git a/crates/markdown/src/parser.rs b/crates/markdown/src/parser.rs index debfe5245f..ca7bd406c4 100644 --- a/crates/markdown/src/parser.rs +++ b/crates/markdown/src/parser.rs @@ -510,6 +510,9 @@ pub(crate) fn extract_code_block_content_range(text: &str) -> Range { if !range.is_empty() && text.ends_with("```") { range.end -= 3; } + if range.start > range.end { + range.end = range.start; + } range } @@ -686,6 +689,10 @@ mod tests { let input = "```python\nprint('hello')\nprint('world')\n```"; assert_eq!(extract_code_block_content_range(input), 10..40); + + // Malformed input + let input = "`````"; + assert_eq!(extract_code_block_content_range(input), 3..3); } #[test]