Discard markdown::Highlighter if language changes

This commit is contained in:
Héctor Ramón Jiménez 2025-02-01 00:33:05 +01:00
parent 095859ed57
commit 447f5ae494
No known key found for this signature in database
GPG key ID: 7CC46565708259A7

View file

@ -289,6 +289,7 @@ struct State {
#[derive(Debug)]
struct Highlighter {
lines: Vec<(String, Vec<Span>)>,
language: String,
parser: iced_highlighter::Stream,
current: usize,
}
@ -304,6 +305,7 @@ impl Highlighter {
token: language.to_string(),
},
),
language: language.to_owned(),
current: 0,
}
}
@ -484,6 +486,9 @@ fn parse_with<'a>(
.borrow_mut()
.highlighter
.take()
.filter(|highlighter| {
highlighter.language == _language.as_ref()
})
.unwrap_or_else(|| Highlighter::new(&_language));
highlighter.prepare();