diff --git a/src/assets.rs b/src/assets.rs index e6c50219..52569082 100644 --- a/src/assets.rs +++ b/src/assets.rs @@ -163,7 +163,7 @@ impl HighlightingAssets { if let Some(MappingTarget::MapTo(syntax_name)) = syntax_match { return self - .find_syntax_by_name(syntax_name)? + .find_syntax_by_token(syntax_name)? .ok_or_else(|| Error::UnknownSyntax(syntax_name.to_owned())); } @@ -259,6 +259,13 @@ impl HighlightingAssets { .map(|syntax| SyntaxReferenceInSet { syntax, syntax_set })) } + fn find_syntax_by_token(&self, token: &str) -> Result> { + let syntax_set = self.get_syntax_set()?; + Ok(syntax_set + .find_syntax_by_token(token) + .map(|syntax| SyntaxReferenceInSet { syntax, syntax_set })) + } + fn get_syntax_for_file_name( &self, file_name: &OsStr, diff --git a/tests/integration_tests.rs b/tests/integration_tests.rs index 3aafb17c..befd8039 100644 --- a/tests/integration_tests.rs +++ b/tests/integration_tests.rs @@ -2751,6 +2751,27 @@ fn highlighting_independant_from_map_syntax_case() { .stderr(""); } +#[test] +fn map_syntax_target_syntax_case_insensitive() { + let expected = bat() + .arg("-f") + .arg("--map-syntax=*.config:json") + .arg("map-syntax_case.Config") + .assert() + .get_output() + .stdout + .clone(); + + bat() + .arg("-f") + .arg("--map-syntax=*.config:json") + .arg("map-syntax_case.Config") + .assert() + .success() + .stdout(expected) + .stderr(""); +} + #[test] fn strip_ansi_always_strips_ansi() { bat()