From c3e4cf6f45cc6d10763cc2668d700454d619d684 Mon Sep 17 00:00:00 2001 From: Keith Hall <kingkeith+git@gmail.com> Date: Sun, 9 Feb 2025 20:56:51 +0200 Subject: [PATCH] Make map-syntax target case insensitive --- src/assets.rs | 9 ++++++++- tests/integration_tests.rs | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) 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<Option<SyntaxReferenceInSet>> { + 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()