Case insensitive `--map-syntax` (#2650)

Co-authored-by: Nicolas AMBRY <nicolas.ambry@atos.net>
This commit is contained in:
Nicolas AMBRY 2023-09-14 16:04:43 +02:00 committed by GitHub
parent e2bf85e749
commit 5a240f36b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 1 deletions

View File

@ -8,6 +8,7 @@
## Bugfixes
- Fix `more` not being found on Windows when provided via `BAT_PAGER`, see #2570, #2580, and #2651 (@mataha)
- Switched default behavior of `--map-syntax` to be case insensitive #2520
## Other

View File

@ -211,7 +211,7 @@ impl<'a> SyntaxMapping<'a> {
pub fn insert(&mut self, from: &str, to: MappingTarget<'a>) -> Result<()> {
let glob = GlobBuilder::new(from)
.case_insensitive(false)
.case_insensitive(true)
.literal_separator(true)
.build()?;
self.mappings.push((glob.compile_matcher(), to));

1
tests/examples/map-syntax_case.Config vendored Normal file
View File

@ -0,0 +1 @@
{"test": "value"}

View File

@ -2385,3 +2385,27 @@ fn lessopen_validity() {
"\u{1b}[33m[bat warning]\u{1b}[0m: LESSOPEN ignored: must contain exactly one %s\n",
);
}
// Regression test for issue #2520 and PR #2650
// Syntax highlighting should be the same regardless of
// --map-syntax' case or file extension's case
#[test]
fn highlighting_independant_from_map_syntax_case() {
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("");
}