Avoid spurious highlight runs in Language::highlight_text

Max Brunsfeld created

Change summary

crates/language/src/highlight_map.rs | 4 ++++
crates/language/src/language.rs      | 4 +++-
2 files changed, 7 insertions(+), 1 deletion(-)

Detailed changes

crates/language/src/highlight_map.rs 🔗

@@ -51,6 +51,10 @@ impl HighlightMap {
 }
 
 impl HighlightId {
+    pub fn is_default(&self) -> bool {
+        *self == DEFAULT_SYNTAX_HIGHLIGHT_ID
+    }
+
     pub fn style(&self, theme: &SyntaxTheme) -> Option<HighlightStyle> {
         theme
             .highlights

crates/language/src/language.rs 🔗

@@ -546,7 +546,9 @@ impl Language {
             {
                 let end_offset = offset + chunk.text.len();
                 if let Some(highlight_id) = chunk.syntax_highlight_id {
-                    result.push((offset..end_offset, highlight_id));
+                    if !highlight_id.is_default() {
+                        result.push((offset..end_offset, highlight_id));
+                    }
                 }
                 offset = end_offset;
             }