@@ -471,9 +471,10 @@ impl Loader {
472 for file_type in &config.file_types {
472 for file_type in &config.file_types {
473 // entry().or_insert(Vec::new).push(language_id);
473 // entry().or_insert(Vec::new).push(language_id);
474+ let file_type = file_type.replace('/', &std::path::MAIN_SEPARATOR.to_string());
475 .language_config_ids_by_file_type
476 .language_config_ids_by_file_type
476− .insert(file_type.clone(), language_id);
477+ .insert(file_type, language_id);
478 for shebang in &config.shebangs {
479 for shebang in &config.shebangs {
@@ -498,6 +499,17 @@ impl Loader {
498 path.extension()
499 path.extension()
499 .and_then(|extension| extension.to_str())
500 .and_then(|extension| extension.to_str())
500 .and_then(|extension| self.language_config_ids_by_file_type.get(extension))
501 .and_then(|extension| self.language_config_ids_by_file_type.get(extension))
504+ self.language_config_ids_by_file_type
506+ .find_map(|(file_type, id)| {
507+ if path.to_str()?.ends_with(file_type) {
503 configuration_id.and_then(|&id| self.language_configs.get(id).cloned())
515 configuration_id.and_then(|&id| self.language_configs.get(id).cloned())