@@ -471,9 +471,10 @@ impl Loader {
471471
472472 for file_type in &config.file_types {
473473 // entry().or_insert(Vec::new).push(language_id);
474+ let file_type = file_type.replace('/', &std::path::MAIN_SEPARATOR.to_string());
474475 loader
475476 .language_config_ids_by_file_type
476− .insert(file_type.clone(), language_id);
477+ .insert(file_type, language_id);
477478 }
478479 for shebang in &config.shebangs {
479480 loader
@@ -498,6 +499,17 @@ impl Loader {
498499 path.extension()
499500 .and_then(|extension| extension.to_str())
500501 .and_then(|extension| self.language_config_ids_by_file_type.get(extension))
502+ })
503+ .or_else(|| {
504+ self.language_config_ids_by_file_type
505+ .iter()
506+ .find_map(|(file_type, id)| {
507+ if path.to_str()?.ends_with(file_type) {
508+ Some(id)
509+ } else {
510+ None
511+ }
512+ })
501513 });
502514
503515 configuration_id.and_then(|&id| self.language_configs.get(id).cloned())