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.
Michael Davis 8 months ago
parent 86f10ae · commit 6fd1efd
-rw-r--r--helix-term/src/ui/markdown.rs8
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()