From 77544f42b1c92451676e71fbe849ec9be1f84c09 Mon Sep 17 00:00:00 2001 From: loczek <30776250+loczek@users.noreply.github.com> Date: Sun, 13 Apr 2025 19:53:22 +0200 Subject: [PATCH] snippets: Fix plaintext snippets not working (#28655) This PR fixes a minor regression introduced in #27718, where snippets stopped working when the language was set to plaintext because `languages_at` doesn't include plaintext, while `language_at` does. Release Notes: - Fixed plaintext snippets not working --- crates/language/src/buffer.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/crates/language/src/buffer.rs b/crates/language/src/buffer.rs index aeb870288c0199b0d6d69e3d96fa625e61941d22..0d6f797bc3c150a708a986f385852f75b42d0d86 100644 --- a/crates/language/src/buffer.rs +++ b/crates/language/src/buffer.rs @@ -1376,11 +1376,20 @@ impl Buffer { /// Returns each [`Language`] for the active syntax layers at the given location. pub fn languages_at(&self, position: D) -> Vec> { let offset = position.to_offset(self); - self.syntax_map + let mut languages: Vec> = self + .syntax_map .lock() .layers_for_range(offset..offset, &self.text, false) .map(|info| info.language.clone()) - .collect() + .collect(); + + if languages.is_empty() { + if let Some(buffer_language) = self.language() { + languages.push(buffer_language.clone()); + } + } + + languages } /// An integer version number that accounts for all updates besides