Commit Graph

916 Commits

Author SHA1 Message Date
cyqsimon e30161ac3c
Add test: `builtin_mappings_matcher_only_compile_once` 2023-12-11 10:21:06 +08:00
cyqsimon 3865908439
Add test: `custom_mappings_precedence` 2023-12-11 10:21:06 +08:00
cyqsimon 9474b4cf8b
Rename & sort syntax mapping tests 2023-12-11 10:21:06 +08:00
cyqsimon b48bda21a3
Add test: `all_fixed_builtin_mappings_can_compile` 2023-12-11 10:21:06 +08:00
cyqsimon 36073a3d95
Document another rule ignore condition 2023-12-11 10:21:06 +08:00
cyqsimon 1f10d846a3
Fix tests
1. for override test, test for something in `common`
2. move git mappings to `common`
2023-12-11 10:21:05 +08:00
cyqsimon 22531eab90
Port all mappings to new system 2023-12-11 10:21:05 +08:00
cyqsimon 0c1b80faab
Impl per-target syntax mappings 2023-12-11 10:21:05 +08:00
cyqsimon ad628c0471
Fix iterator lifetime incompatibility 2023-12-11 10:21:05 +08:00
cyqsimon f483d2df42
Lazily compile `GlobMatcher`s 2023-12-11 10:21:05 +08:00
cyqsimon 4ad3002543
`s/Lazy<GlobMatcher>/Lazy<Option<GlobMatcher>>/` 2023-12-11 10:21:05 +08:00
cyqsimon cfd622d6e1
Migrate `SyntaxMapping` impl to new system
Most existing builtins are removed but not yet ported, so the test
`user_can_override_builtin_mappings` should fail. It should pass once the old
rules have been ported.
2023-12-11 10:21:05 +08:00
cyqsimon 1c7c9a6b6d
Split `syntax_mapping/builtin.rs` 2023-12-11 10:21:05 +08:00
cyqsimon de6d418d42
Remove `BuiltinMatcher` enum
Explanation added as comments in code
Using plain `Lazy<Option<GlobMatcher>>` is just better
2023-12-11 10:21:04 +08:00
cyqsimon 7e1fbcfe95
Fix visibility for `SyntaxMapping::get_syntax_for`
This change was made in 31fb708, but then was reverted (I assume incorrectly)
in 6246485.
2023-12-11 10:21:04 +08:00
cyqsimon 0fea82cff9
Minor improvement of variable naming accuracy 2023-12-11 10:20:11 +08:00
cyqsimon 64840fbbae
`join_segments` -> `build_glob_string`
- this is a more descriptive name
2023-12-11 10:20:11 +08:00
cyqsimon 827b3eca2f
Add unset `*.conf` example 2023-12-11 10:20:11 +08:00
cyqsimon 9478d2dfe8
Isolate variables at compile time 2023-12-11 10:20:11 +08:00
cyqsimon d24501ab5e
`include!` generated mappings in source 2023-12-11 10:20:11 +08:00
cyqsimon 52f94b4623
Clarify syntax selection algorithm behaviour 2023-12-11 10:20:10 +08:00
cyqsimon 37fd050100
Describe filename ordering more accurately 2023-12-11 10:20:10 +08:00
cyqsimon 83286975ff
Add ordering prefix to git-config example 2023-12-11 10:20:10 +08:00
cyqsimon f705fcb984
Add global git-config example 2023-12-11 10:20:10 +08:00
cyqsimon 9ca1f20f43
Add specification draft 2023-12-11 10:20:10 +08:00
Oliver looney 6ad800e43a
tidied commits 2023-12-10 17:24:49 +00:00
Oliver looney 069318b139
fixed formatting of terminal title 2023-12-10 17:20:42 +00:00
Oliver looney b9b554248d
successfully setting the terminal title to bat's input's names 2023-12-10 17:17:19 +00:00
Oliver looney 4863d428dd
title is being reset on quit, so no need to restore terminal title 2023-12-10 16:44:47 +00:00
Oliver looney 2e103ee6b3
able to set terminal title to hardcoded value 2023-12-10 16:39:34 +00:00
Lena 28990bc451
fix: display color when NO_COLOR is an empty string (#2767) 2023-12-02 11:43:55 +00:00
einfachIrgendwer0815 3d87b25b19
Add unicode/caret replacements for all control characters (#2712) 2023-10-20 19:41:48 +02:00
rhysd e5c81ed41e Replace our own macros to write buffers with standard macros 2023-10-05 09:21:26 +02:00
skoriop 0937d575fd fix: rewrite overflow test using `usize::MAX` 2023-10-05 09:20:09 +02:00
skoriop d89df18de2 test: add test for overflow in `LineRange::from` 2023-10-05 09:20:09 +02:00
skoriop 9fcc57e496 fix: integer overflow in `LineRange::parse_range` 2023-10-05 09:20:09 +02:00
Linda_pp 9f795dd947
Associate `*.sarif` files with `json` syntax (#2695)
* Associate `*.sarif` files with `json` syntax

* Update changelog for #2695
2023-10-04 09:34:40 +02:00
Nicolas AMBRY 5a240f36b9
Case insensitive `--map-syntax` (#2650)
Co-authored-by: Nicolas AMBRY <nicolas.ambry@atos.net>
2023-09-14 16:04:43 +02:00
J-Kappes e2bf85e749
Make -pp override --paging and vice versa when passed as a later argument. (#2660) 2023-09-14 05:45:46 +02:00
Anomalocaridid 433176ab54 require LESSOPEN to have exactly one %s 2023-09-08 06:25:20 +02:00
Anomalocaridid b56021ffa9 make LESSOPEN support opt-in 2023-09-08 06:25:20 +02:00
Anomalocaridid ac2953c070 pass --no-lessopen to less by default 2023-09-08 06:25:20 +02:00
Anomalocaridid e32ad0b048
Add `$LESSOPEN` and `$LESSCLOSE` support (#2444) 2023-09-02 08:48:26 +02:00
David Peter 3abc0c0fc4
Merge pull request #2548 from utkarshgupta137/master
Replace `dirs` crate with `etcetera` crate
2023-09-01 21:41:24 +02:00
David Peter b06f13f0c5
Merge pull request #2618 from Piturnah/feat/write-to-buffer
feat: Optionally write to a buffer instead of stdout
2023-09-01 21:18:04 +02:00
Utkarsh Gupta a721cc31f3 Replace `dirs` crate with `etcetera` crate 2023-09-01 21:13:21 +02:00
David Peter 1e52785d35
Merge pull request #2626 from rhysd/encoding_rs
Replace unmaintained `encoding` dependency with `encoding_rs`
2023-09-01 21:12:07 +02:00
Orion Yeung 9ba3b6ed13
No duplicate keys test, fixes #2643 (#2647)
* moved unit tests to conditional compile

made module `tests` and conditionally compiled

* added test to check for duplicate keys in builtin

checks all pairs in GlobMatcher::mappings via `GlobMatcher::glob`s `Eq`
panics at first match

```rs
SyntaxMapping {
  mappings: Vec<(
    GlobMatcher {
      glob: Glob, ...,
    }, ...,
  }, ...,
}
```

* output more info with test failure

* dont duplicatively add git config path

* use guard in match for adding builtin git config syntax mapping

---------

Co-authored-by: Orion Yeung <11580988+orionyeung001@users.noreply.github.com>
2023-09-01 21:11:41 +02:00
Peter Hebden 72e1a40bab Remove leftover unwrap 2023-09-01 20:52:55 +02:00
Peter Hebden b2c28cdddb Clippy lints 2023-09-01 20:52:55 +02:00
Peter Hebden 906e774372 Handle todos 2023-09-01 20:52:55 +02:00
Peter Hebden d929becefc Fix signatures 2023-09-01 20:52:55 +02:00
Peter Hebden 103a2f0d9b Add `OutputHandle` enum to use instead of `&mut dyn io::Write` 2023-09-01 20:52:55 +02:00
rhysd d33b2e158e Replace unmaintained `encoding` with `encoding_rs` 2023-09-01 20:41:55 +02:00
einfachIrgendwer0815 26111950b3 Add environment variable `BAT_PAGING` 2023-09-01 17:59:41 +02:00
Orion Yeung f21d3502e1 Add `*.ron` syntax mapping
Add a mapping to use `Rust` for rusty object notation, identified by `.ron` extension. See [#2427](https://github.com/sharkdp/bat/issues/2427).
2023-09-01 17:57:46 +02:00
WinterCore d580445aef fix: Add syntax mapping `jsonl` => `json` 2023-09-01 17:45:41 +02:00
mataha 82664e3c82 Bump MSRV to 1.70.0
The intention is to take advantage of `std::io::IsTerminal` that landed
in 1.70.0, both in `bat` and its dependencies (`clap`, `grep-cli`).

This will fix #2570 as well - `grep-cli` 0.1.9 has a patch for that.

Signed-off-by: mataha <mataha@users.noreply.github.com>
2023-09-01 05:42:45 +02:00
Ville Skyttä 1893405cbf Add .dpkg-new and .dpkg-tmp to ignored suffixes
Refs https://www.debian.org/doc/manuals/debian-handbook/sect.package-meta-information.en.html#sect.conffiles
2023-08-28 17:50:29 +02:00
John Higgins b1fbcc8a6e
fix for issue #2633 2023-08-02 00:04:55 -07:00
einfachIrgendwer0815 c46c53320b
Add `Containerfile` syntax mapping 2023-07-02 13:50:37 +02:00
cyqsimon f8c700027e
Add `os-release` syntax mapping 2023-06-01 13:17:22 +08:00
Nigecat 149dec6953 Fix paging not happening when stdout is interactive but stdin is not 2023-05-22 05:42:01 +02:00
Constantin Nickel 57cc0d8435 Use the `is-terminal` crate instead of `atty`
The crate is already used by `clap` and a similar trait is about to be
stabilized in `std`.
2023-04-05 19:26:52 +02:00
Collin Styles 7929179a74 Make `PrettyPrinter::header` an alias for `header_filename`
Fixes #2378
2023-03-24 22:33:43 +01:00
David Peter 1a142a82b4
Merge pull request #2513 from nickelc/deps/dirs
Replace `dirs-next` with the original `dirs` crate
2023-03-24 22:07:47 +01:00
Constantin Nickel 0e148e35dd Replace `dirs-next` with the original `dirs` crate
The `dirs` crate was forked as `dirs-next` after the original repos were archived.
The fork hasn't released a new version since October 2020, while the original
has been taken off the shelf and has seen updates since then.
2023-03-24 19:10:38 +01:00
Constantin Nickel da3aa4e2fd Use `nu-ansi-term` instead of `ansi_term`
The `nu-ansi-term` crate is a fork of `ansi_term` which is maintained by
the Nushell project.
2023-03-24 17:42:54 +01:00
David Peter 231ad86f04
Merge pull request #2502 from Enselic/clippy-1.68
Fix clippy warnings with Rust 1.68
2023-03-15 08:36:28 +01:00
einfachIrgendwer0815 8f99a78cf1
Print non-printable characters using caret notation (#2443)
When the new flag is set, non-printable characters are printed using caret notation.
2023-03-14 22:21:30 +01:00
Martin Nordholts 40a423905a Fix clippy warnings with Rust 1.68 2023-03-14 21:19:14 +01:00
Martin Nordholts ec6e9c29ac
Bump MSRV to 1.62 (#2496)
* Bump MSRV to 1.62

Mainly to be able to derive default enum variants.

* CHANGELOG.md: Update
2023-03-03 13:20:03 +01:00
BlackHoleFox 1004018941 Directly read preferences instead of using the defaults CLI 2023-02-05 16:53:28 +01:00
rhysd 4cc2a489d0 Remove unnecessary heap allocations in `PrettyPrinter::print` for style components 2023-01-15 21:16:36 +09:00
rhysd 5e3abcad07 Fix code fence in doc comment 2023-01-13 08:16:38 +01:00
Miles Liu e39178b101
Fix `bat cache --clear` not clearing the `--target` dir if specified 2022-11-19 18:00:37 +08:00
Aaron Kollasch e773b48135
Fix cache subcommand and add tests
Treat the cache subcommand differently from --no-config:
For --no-config, insert args from selected environment variables
For cache, don't insert args
2022-11-02 16:48:51 -04:00
Aaron Kollasch 4bcea01e9d
Deduplicate lines in matches function 2022-11-02 16:48:51 -04:00
Aaron Kollasch 76aad7c74f
Improve correctness and add more tests 2022-11-02 16:48:50 -04:00
Aaron Kollasch 36ccc6a31e
Allow env vars to override config but not args 2022-11-02 16:48:50 -04:00
David Peter a65b0828ee Merge remote-tracking branch 'origin/master' into HEAD 2022-10-30 20:43:06 +01:00
David Peter ccde13c9e8 Hide 'cache' subcommand, re-enable bold/underline styling, add note about cache subcommand 2022-10-30 20:26:06 +01:00
John Higgins ff71303349
Update src/bin/bat/clap_app.rs for PR 2309
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-10-17 23:35:52 -07:00
John Higgins 236a2c5794
Fixed inverted logic on -S and --chop-long-lines 2022-10-13 23:52:15 -07:00
John Higgins 03216c9c18
Merge branch 'sharkdp:master' into master 2022-10-09 22:56:11 -07:00
John Higgins 375b392478
Fixed reversed logic error for --chop-long-lines 2022-10-09 22:41:27 -07:00
Gábor Lipták 1e0b0f7c5c Add github-actions to Dependabot
Signed-off-by: Gábor Lipták <gliptak@gmail.com>
2022-10-03 15:18:39 -05:00
Martin Nordholts 352309b056 Revert "Remove code that tries to handle ANSI escape inputs"
This reverts commit 8174e02279. Turns out
it is needed for a common use case, see
https://github.com/sharkdp/bat/issues/2307.

It is not a clean revert, because I adjust CHANGELOG.md and also add a
comment to the test. I also had to resolve a small `use` conflict.
2022-09-10 17:59:33 +02:00
John Higgins a272d3df16
Added -S flag for truncating long lines 2022-09-09 17:04:09 -07:00
dag-h 08386daa3a
Strip BOM from output in interactive mode (#1938)
* Strip BOM from output in interactive mode

* Strip BOM when not loop_through, add regression tests

* Update CHANGELOG.md

* Only strip BOM from beginning of first line

* Fix integration test on macOS that relied on color scheme

* Fix integration test on Windows that relied on detected terminal width

* Fix syntax test that was failing due to a previously wrong (now fixed) highlighting

Co-authored-by: David Peter <mail@david-peter.de>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-09-06 19:08:38 +02:00
rhysd 3d7817d662 Clear `highlighted_lines` when calling `PrettyPrinter::print` 2022-09-05 21:17:08 +09:00
rhysd abd69f2deb Add `bat::PrettyPrinter::clear_highlights` (fixes #1919) 2022-09-05 17:35:32 +09:00
Kid 839e62cff8 Map `fish_history` to YAML 2022-09-04 22:22:18 +02:00
Martin Nordholts 2dd2994b2f Merge remote-tracking branch 'origin/master' into feature/668/add-systemwide-config 2022-09-04 20:44:23 +02:00
David Peter 48541b8507 Fix clippy suggestions
Leads to a performance improvement for `bat -A`:

    | Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
    |:---|---:|---:|---:|---:|
    | `./bat-master --no-config -A ./bat-master` | 259.8 ± 1.1 | 258.4 | 261.7 | 1.15 ± 0.01 |
    | `./bat-2301 --no-config -A ./bat-master` | 225.6 ± 1.8 | 224.0 | 229.5 | 1.00 |
2022-09-04 14:28:44 +02:00
Ed Page 08c91a116c refactor: Parse, don't validate 2022-09-03 14:01:56 +02:00
Ed Page 3d398b35c3 refactor: Switch from is_present to actions
Because "diff" is conditionally present, we need to check for it to
avoid some of clap's stricter checks meant to prevent bugs.
2022-09-03 14:01:56 +02:00
Ed Page 6099f2c146 refactor: Move off of value_of 2022-09-03 14:01:56 +02:00
Ed Page 50bb924ee3 refactor: Replace multiple_occurrences 2022-09-03 14:01:56 +02:00
Ed Page e8e1c1d6c9 refactor: Replace allow_invalid_utf8 with PathBuf 2022-09-03 14:01:56 +02:00