From 447f5ae494da7ef93ac073600f4e5a2559c4e71c Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sat, 1 Feb 2025 00:33:05 +0100 Subject: Discard `markdown::Highlighter` if language changes --- widget/src/markdown.rs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'widget/src/markdown.rs') diff --git a/widget/src/markdown.rs b/widget/src/markdown.rs index b4b89095..658166ec 100644 --- a/widget/src/markdown.rs +++ b/widget/src/markdown.rs @@ -289,6 +289,7 @@ struct State { #[derive(Debug)] struct Highlighter { lines: Vec<(String, Vec)>, + 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(); -- cgit