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 12 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()