From a2d09286d599ff25dfae23bb56f47b5266e2b6de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Marcos?= Date: Mon, 20 Jan 2025 22:17:59 -0300 Subject: [PATCH] refac `get_injections` --- crates/language/src/syntax_map.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/crates/language/src/syntax_map.rs b/crates/language/src/syntax_map.rs index 11e4485573..ce83c7b672 100644 --- a/crates/language/src/syntax_map.rs +++ b/crates/language/src/syntax_map.rs @@ -448,7 +448,6 @@ impl SyntaxSnapshot { let mut changed_regions = ChangeRegionSet::default(); let mut queue = BinaryHeap::new(); - let mut combined_injection_ranges = HashMap::default(); queue.push(ParseStep { depth: 0, language: ParseStepLanguage::Loaded { @@ -708,7 +707,7 @@ impl SyntaxSnapshot { text, ); } - update_injections( + update_injection_parse_steps( config, text, step.range.clone(), @@ -719,7 +718,6 @@ impl SyntaxSnapshot { registry, step.depth + 1, &changed_ranges, - &mut combined_injection_ranges, &mut queue, ); } @@ -1255,7 +1253,8 @@ fn parse_text( }) } -fn update_injections( +#[allow(clippy::too_many_arguments)] +fn update_injection_parse_steps( config: &InjectionConfig, text: &BufferSnapshot, outer_range: Range, @@ -1263,15 +1262,16 @@ fn update_injections( language_registry: &Arc, depth: usize, changed_ranges: &[Range], - combined_injection_ranges: &mut HashMap, Vec)>, queue: &mut BinaryHeap, ) { let mut query_cursor = QueryCursorHandle::new(); let mut prev_match = None; - // Ensure that a `ParseStep` is created for every combined injection language, even - // if there currently no matches for that injection. - combined_injection_ranges.clear(); + // Note: a `ParseStep` must be created for every combined injection language, even + // if there are currently no matches for that injection. + let mut combined_injection_ranges = + HashMap::, Vec)>::default(); + for pattern in &config.patterns { if let (Some(language_name), true) = (pattern.language.as_ref(), pattern.combined) { if let Some(language) = language_registry