From a1544f47ad101d0c054a4044ccee325b5d4f9986 Mon Sep 17 00:00:00 2001 From: Ben Kunkle Date: Fri, 7 Feb 2025 09:37:07 -0600 Subject: [PATCH] Fix incorrect assumption about `Path.extension()` (#24443) Release Notes: - N/A --- crates/language/src/language_registry.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/language/src/language_registry.rs b/crates/language/src/language_registry.rs index 9d80b2609c62b57af86c9acb8d820365c06b00cc..21c083696f65c53451dbc66bea54d0197a652390 100644 --- a/crates/language/src/language_registry.rs +++ b/crates/language/src/language_registry.rs @@ -659,7 +659,10 @@ impl LanguageRegistry { user_file_types: Option<&HashMap, GlobSet>>, ) -> Option { let filename = path.file_name().and_then(|name| name.to_str()); - let extension = path.extension().and_then(|ext| ext.to_str()); + // `Path.extension()` returns None for files with a leading '.' + // and no other extension which is not the desired behavior here, + // as we want `.zshrc` to result in extension being `Some("zshrc")` + let extension = filename.and_then(|filename| filename.split('.').last()); let path_suffixes = [extension, filename, path.to_str()]; let empty = GlobSet::empty();