@@ -9,12 +9,12 @@ use syntect::parsing::{SyntaxReference, SyntaxSet};
10use path_abs::PathAbs;
10use path_abs::PathAbs;
12−use crate::bat_warning;
13use crate::error::*;
12use crate::error::*;
14use crate::input::{InputReader, OpenedInput};
13use crate::input::{InputReader, OpenedInput};
15−use crate::syntax_mapping::{MappingTarget, SyntaxMapping};
14+use crate::syntax_mapping::ignored_suffixes::IgnoredSuffixes;
15+use crate::syntax_mapping::MappingTarget;
16+use crate::{bat_warning, SyntaxMapping};
17−use ignored_suffixes::*;
18use minimal_assets::*;
18use minimal_assets::*;
19use serialized_syntax_set::*;
19use serialized_syntax_set::*;
@@ -24,7 +24,6 @@ pub use crate::assets::build_assets::*;
24pub(crate) mod assets_metadata;
24pub(crate) mod assets_metadata;
25#[cfg(feature = "build-assets")]
25#[cfg(feature = "build-assets")]
26mod build_assets;
26mod build_assets;
28mod minimal_assets;
27mod minimal_assets;
29mod serialized_syntax_set;
28mod serialized_syntax_set;
@@ -195,7 +194,10 @@ impl HighlightingAssets {
196 let file_name = path.file_name().unwrap_or_default();
195 let file_name = path.file_name().unwrap_or_default();
198− match (self.get_syntax_for_file_name(file_name)?, syntax_match) {
198+ self.get_syntax_for_file_name(file_name, &mapping.ignored_suffixes)?,
199 (Some(syntax), _) => Ok(syntax),
201 (Some(syntax), _) => Ok(syntax),
201 (_, Some(MappingTarget::MapExtensionToUnknown)) => {
203 (_, Some(MappingTarget::MapExtensionToUnknown)) => {
@@ -203,7 +205,7 @@ impl HighlightingAssets {
205 _ => self
207 _ => self
206− .get_syntax_for_file_extension(file_name)?
208+ .get_syntax_for_file_extension(file_name, &mapping.ignored_suffixes)?
207 .ok_or_else(|| Error::UndetectedSyntax(path.to_string_lossy().into())),
209 .ok_or_else(|| Error::UndetectedSyntax(path.to_string_lossy().into())),
@@ -277,12 +279,18 @@ impl HighlightingAssets {
277 .map(|syntax| SyntaxReferenceInSet { syntax, syntax_set }))
279 .map(|syntax| SyntaxReferenceInSet { syntax, syntax_set }))
282+ fn get_syntax_for_file_name(
285+ ignored_suffixes: &IgnoredSuffixes,
280− fn get_syntax_for_file_name(&self, file_name: &OsStr) -> Result<Option<SyntaxReferenceInSet>> {
286+ ) -> Result<Option<SyntaxReferenceInSet>> {
281 let mut syntax = self.find_syntax_by_extension(Some(file_name))?;
287 let mut syntax = self.find_syntax_by_extension(Some(file_name))?;
282 if syntax.is_none() {
288 if syntax.is_none() {
283− syntax = try_with_stripped_suffix(file_name, |stripped_file_name| {
290+ ignored_suffixes.try_with_stripped_suffix(file_name, |stripped_file_name| {
284− self.get_syntax_for_file_name(stripped_file_name) // Note: recursion
291+ // Note: recursion
292+ self.get_syntax_for_file_name(stripped_file_name, ignored_suffixes)
287 Ok(syntax)
295 Ok(syntax)
@@ -290,12 +298,15 @@ impl HighlightingAssets {
290 fn get_syntax_for_file_extension(
298 fn get_syntax_for_file_extension(
292 file_name: &OsStr,
300 file_name: &OsStr,
301+ ignored_suffixes: &IgnoredSuffixes,
293 ) -> Result<Option<SyntaxReferenceInSet>> {
302 ) -> Result<Option<SyntaxReferenceInSet>> {
294 let mut syntax = self.find_syntax_by_extension(Path::new(file_name).extension())?;
303 let mut syntax = self.find_syntax_by_extension(Path::new(file_name).extension())?;
295 if syntax.is_none() {
304 if syntax.is_none() {
296− syntax = try_with_stripped_suffix(file_name, |stripped_file_name| {
306+ ignored_suffixes.try_with_stripped_suffix(file_name, |stripped_file_name| {
297− self.get_syntax_for_file_extension(stripped_file_name) // Note: recursion
307+ // Note: recursion
308+ self.get_syntax_for_file_extension(stripped_file_name, ignored_suffixes)
300 Ok(syntax)
311 Ok(syntax)