v0.25.0
Features
- Set terminal title to file names when Paging is not Paging::Never #2807 (@Oliver-Looney)
bat --squeeze-blank/bat -swill now squeeze consecutive empty lines, see #1441 (@eth-p) and #2665 (@einfachIrgendwer0815)bat --squeeze-limitto set the maximum number of empty consecutive when using--squeeze-blank, see #1441 (@eth-p) and #2665 (@einfachIrgendwer0815)PrettyPrinter::squeeze_empty_linesto support line squeezing for bat as a library, see #1441 (@eth-p) and #2665 (@einfachIrgendwer0815)- Syntax highlighting for JavaScript files that start with
#!/usr/bin/env bun#2913 (@sharunkumar) bat --strip-ansi={never,always,auto}to remove ANSI escape sequences from bat's input, see #2999 (@eth-p)- Add or remove individual style components without replacing all styles #2929 (@eth-p)
- Automatically choose theme based on the terminal's color scheme, see #2896 (@bash)
- Add option
--binary=as-textfor printing binary content, see issue #2974 and PR #2976 (@einfachIrgendwer0815) - Make shell completions available via
--completion <shell>, see issue #2057 and PR #3126 (@einfachIrgendwer0815) - Syntax highlighting for puppet code blocks within Markdown files, see #3152 (@liliwilson)
Bugfixes
- Fix long file name wrapping in header, see #2835 (@FilipRazek)
- Fix
NO_COLORsupport, see #2767 (@acuteenvy) - Fix handling of inputs with OSC ANSI escape sequences, see #2541 and #2544 (@eth-p)
- Fix handling of inputs with combined ANSI color and attribute sequences, see #2185 and #2856 (@eth-p)
- Fix panel width when line 10000 wraps, see #2854 (@eth-p)
- Fix compile issue of
timedependency caused by standard library regression #3045 (@cyqsimon) - Fix override behavior of --plain and --paging, see issue #2731 and PR #3108 (@einfachIrgendwer0815)
- Fix bugs in
$LESSOPENsupport, see #2805 (@Anomalocaridid)
Other
- Upgrade to Rust 2021 edition #2748 (@cyqsimon)
- Refactor and cleanup build script #2756 (@cyqsimon)
- Checks changelog has been written to for PRs in CI #2766 (@cyqsimon)
- Minor benchmark script improvements #2768 (@cyqsimon)
- Update Arch Linux package URL in README files #2779 (@brunobell)
- Update and improve
zshcompletion, see #2772 (@okapia) - More extensible syntax mapping mechanism #2755 (@cyqsimon)
- Use proper Architecture for Debian packages built for musl, see #2811 (@Enselic)
- Pull in fix for unsafe-libyaml security advisory, see #2812 (@dtolnay)
- Update git-version dependency to use Syn v2, see #2816 (@dtolnay)
- Update git2 dependency to v0.18.2, see #2852 (@eth-p)
- Improve performance when color output disabled, see #2397 and #2857 (@eth-p)
- Relax syntax mapping rule restrictions to allow brace expansion #2865 (@cyqsimon)
- Apply clippy fixes #2864 (@cyqsimon)
- Faster startup by offloading glob matcher building to a worker thread #2868 (@cyqsimon)
- Display which theme is the default one in basic output (no colors), see #2937 (@sblondon)
- Display which theme is the default one in colored output, see #2838 (@sblondon)
- Add aarch64-apple-darwin ("Apple Silicon") binary tarballs to releases, see #2967 (@someposer)
- Update the Lisp syntax, see #2970 (@ccqpein)
- Use bat's ANSI iterator during tab expansion, see #2998 (@eth-p)
- Support 'statically linked binary' for aarch64 in 'Release' page, see #2992 (@tzq0301)
- Update options in shell completions and the man page of
bat, see #2995 (@akinomyoga) - Update nix dev-dependency to v0.29.0, see #3112 (@decathorpe)
- Bump MSRV to 1.74, see #3154 (@keith-hall)
- Update clircle dependency to remove winapi transitive dependency, see #3113 (@niklasmohrin)
Syntaxes
cmd-help: scope subcommands followed by other terms, and other misc improvements, see #2819 (@victor-gp)- Upgrade JQ syntax, see #2820 (@dependabot[bot])
- Add syntax mapping for quadman quadlets #2866 (@cyqsimon)
- Map containers .conf files to TOML syntax #2867 (@cyqsimon)
- Associate
.xshfiles withxonshsyntax that is Python, see #2840 (@anki-code) - Associate JSON with Comments
.jsoncwithjsonsyntax, see #2795 (@mxaddict) - Associate JSON-LD
.jsonldfiles withjsonsyntax, see #3037 (@vorburger) - Associate
.textprotofiles withProtoBufsyntax, see #3038 (@vorburger) - Associate GeoJSON
.geojsonfiles withjsonsyntax, see #3084 (@mvaaltola) - Associate
.aws/{config,credentials}, see #2795 (@mxaddict) - Associate Wireguard config
/etc/wireguard/*.conf, see #2874 (@cyqsimon) - Add support for CFML, see #3031 (@brenton-at-pieces)
- Map
*.mkdfiles toMarkdownsyntax, see issue #3060 and PR #3061 (@einfachIrgendwer0815) - Add syntax mapping for CITATION.cff, see #3103 (@Ugzuzg)
- Add syntax mapping for kubernetes config files #3049 (@cyqsimon)
- Adds support for pipe delimiter for CSV #3115 (@pratik-m)
- Add syntax mapping for
/etc/pacman.conf#2961 (@cyqsimon) - Associate
uv.lockwithTOMLsyntax, see #3132 (@fepegar)
Themes
- Patched/improved themes for better Manpage syntax highlighting support, see #2994 (@keith-hall).
bat as a library
- Changes to
syntax_mapping::SyntaxMapping#2755 (@cyqsimon)SyntaxMapping::get_syntax_foris now correctly public- [BREAKING]
SyntaxMapping::{empty,builtin}are removed; useSyntaxMapping::newinstead - [BREAKING]
SyntaxMapping::mappingsis replaced bySyntaxMapping::{builtin,custom,all}_mappings
- Make
Controller::run_with_error_handler's error handlerFnMut, see #2831 (@rhysd) - Improve compile time by 20%, see #2815 (@dtolnay)
- Add
theme::themefor choosing an appropriate theme based on the
terminal's color scheme, see #2896 (@bash)- [BREAKING] Remove
HighlightingAssets::default_theme. Usetheme::default_themeinstead.
- [BREAKING] Remove
- Add
PrettyPrinter::print_with_writerfor custom output destinations, see #3070 (@kojix2)