@@ -399,28 +399,15 @@ impl LanguageConfiguration {
399399
400400 pub fn indent_query(&self) -> Option<&Query> {
401401 self.indent_query
402− .get_or_init(|| {
403− let lang_name = self.language_id.to_ascii_lowercase();
404− let query_text = read_query(&lang_name, "indents.scm");
405− if query_text.is_empty() {
406− return None;
407− }
408− let lang = self.highlight_config.get()?.as_ref()?.language;
409− Query::new(lang, &query_text).ok()
410− })
402+ .get_or_init(|| self.load_query("indents.scm"))
411403 .as_ref()
412404 }
413405
414406 pub fn textobject_query(&self) -> Option<&TextObjectQuery> {
415407 self.textobject_query
416− .get_or_init(|| -> Option<TextObjectQuery> {
417− let lang_name = self.language_id.to_ascii_lowercase();
418− let query_text = read_query(&lang_name, "textobjects.scm");
419− let lang = self.highlight_config.get()?.as_ref()?.language;
420− let query = Query::new(lang, &query_text)
421− .map_err(|e| log::error!("Failed to parse textobjects.scm queries: {}", e))
422− .ok()?;
423− Some(TextObjectQuery { query })
408+ .get_or_init(|| {
409+ self.load_query("textobjects.scm")
410+ .map(|query| TextObjectQuery { query })
424411 })
425412 .as_ref()
426413 }
@@ -428,6 +415,18 @@ impl LanguageConfiguration {
428415 pub fn scope(&self) -> &str {
429416 &self.scope
430417 }
418+
419+ fn load_query(&self, kind: &str) -> Option<Query> {
420+ let lang_name = self.language_id.to_ascii_lowercase();
421+ let query_text = read_query(&lang_name, kind);
422+ if query_text.is_empty() {
423+ return None;
424+ }
425+ let lang = self.highlight_config.get()?.as_ref()?.language;
426+ Query::new(lang, &query_text)
427+ .map_err(|e| log::error!("Failed to parse {} queries for {}: {}", kind, lang_name, e))
428+ .ok()
429+ }
431430}
432431
433432// Expose loader as Lazy<> global since it's always static?