Unnamed repository; edit this file 'description' to name the repository.
Gracefully handle highlighter bugs in the markdown component
Since tree-house is young and we've seen a few bugs that make it go
backwards, we should handle this case gracefully and just give up on
syntax highlighting with an error log.
| -rw-r--r-- | helix-term/src/ui/markdown.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/helix-term/src/ui/markdown.rs b/helix-term/src/ui/markdown.rs index ae58d75e..6bef59d1 100644 --- a/helix-term/src/ui/markdown.rs +++ b/helix-term/src/ui/markdown.rs @@ -90,7 +90,13 @@ pub fn highlighted_code_block<'a>( if pos == start { continue; } - assert!(pos > start); + // The highlighter should always move forward. + // If the highlighter malfunctions, bail on syntax highlighting and log an error. + debug_assert!(pos > start); + if pos < start { + log::error!("Failed to highlight '{language}': {text:?}"); + return styled_multiline_text(text, code_style); + } let style = syntax_highlight_stack .iter() |