Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Releases: sharkdp/bat

v0.26.1

Choose a tag to compare

@keith-hall keith-hall released this 02 Dec 20:48
979ba22

v0.26.1

Features

Bugfixes

  • Fix hang when using --list-themes with an explicit pager, see #3457 (@abhinavcool42)
  • Fix negative values of N not being parsed in <N:M> line ranges without = flag value separator, see #3442 (@lmmx)
  • Fix broken Docker syntax preventing use of custom assets, see #3476 (@keith-hall)
  • Fix decorations being applied unexpectedly when piping. Now only line numbers explicitly required on the command line should be applied in auto decorations mode for cat compatibility. See #3496 (@keith-hall)
  • Fix diagnostics attempting to find the version of an executable named builtin when builtin pager is used. See #3498 (@keith-hall)
  • --help now correctly reads the config file for theme information etc. See #3507 (@keith-hall)

Other

  • Improve README documentation on pager options passed to less, see #3443 (@injust)
  • Make PowerShell completions compatible with PowerShell v5.1, see #3495 (@keith-hall)
  • Use more robust approach to escaping in Bash completions, see #3448 (@akinomyoga)

Syntaxes

  • Update quadlet syntax mapping to include *.{build,pod} files #3484 (@cyqsimon)
  • Fix inconsistencies in Ada syntax, see #3481 (@AldanTanneo)
  • Add syntax mapping for podman's artifact quadlet files, see #3497 (@xduugu)
  • Highlight Korn Shell scripts (i.e. with a shebang of ...ksh) using Bash syntax, see #3509 (@keith-hall)

v0.26.0

Choose a tag to compare

@keith-hall keith-hall released this 19 Oct 18:22
c734087

v0.26.0

Features

Bugfixes

  • Fix UTF-8 BOM not being stripped for syntax detection, see #3314 (@krikera)
  • Fix BAT_THEME_DARK and BAT_THEME_LIGHT being ignored, see issue #3171 and PR #3168 (@bash)
  • Prevent --list-themes from outputting default theme info to stdout when it is piped, see #3189 (@einfachIrgendwer0815)
  • Rename some submodules to fix Dependabot submodule updates, see issue #3198 and PR #3201 (@victor-gp)
  • Make highlight tests fail when new syntaxes don't have fixtures PR #3255 (@dan-hipschman)
  • Fix crash for multibyte characters in file path, see issue #3230 and PR #3245 (@HSM95)
  • Add missing mappings for various bash/zsh files, see PR #3262 (@AdamGaskins)
  • Send all bat errors to stderr by default, see #3336 (@JerryImMouse)
  • Make --map-syntax target case insensitive to match --language, see #3206 (@keith-hall)
  • Correctly determine the end of the line in UTF16LE/BE input #3369 (@keith-hall)
  • --style=changes no longer prints a two-space indent when the file is unmodified, see issue #2710 and PR #3406 (@jyn514)
  • Add missing shell completions, see #3411 (@keith-hall)
  • Execute help/version/diagnostic commands even with invalid config/arguments present, see #3414 (@keith-hall)
  • Fixed line numbers (-n) and style components not printing when piping output, see issue #2935 and PR #3438 (@lmmx)

Other

  • Update base16 README links to community driven base16 work #2871 (@JamyGolden)
  • Work around build failures when building bat from vendored sources #3179 (@dtolnay)
  • CICD: Stop building for x86_64-pc-windows-gnu which fails #3261 (Enselic)
  • CICD: CICD: replace windows-2019 runners with windows-2025 #3339 (@cyqsimon)
  • Build script: replace string-based codegen with quote-based codegen #3340 (@cyqsimon)
  • Improve code coverage of --list-languages parameter #2942 (@sblondon)
  • Only start offload worker thread when there's more than 1 core #2956 (@cyqsimon)
  • Update terminal-colorsaurus (the library used for dark/light detection) to 1.0, see #3347 (@bash)
  • Update console dependency to 0.16, see #3351 (@musicinmybrain)
  • Fixed some typos #3244 (@ssbarnea)
  • Update onig_sys dependency to 69.9.1 to fix a gcc build failure #3400 (@CosmicHorrorDev)
  • Add a cargo feature (vendored-libgit2) to build with vendored libgit2 version without depending on the system's one #3426 (@0x61nas)
  • Update syntect dependency to v5.3.0 to fix a few minor bugs, see #3410 (@keith-hall)

Syntaxes

Themes

v0.25.0

Choose a tag to compare

@keith-hall keith-hall released this 07 Jan 19:08
25f4f96

v0.25.0

Features

Bugfixes

Other

Syntaxes

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_for is now correctly public
    • [BREAKING] SyntaxMapping::{empty,builtin} are removed; use SyntaxMapping::new instead
    • [BREAKING] SyntaxMapping::mappings is replaced by SyntaxMapping::{builtin,custom,all}_mappings
  • Make Controller::run_with_error_handler's error handler FnMut, see #2831 (@rhysd)
  • Improve compile time by 20%, see #2815 (@dtolnay)
  • Add theme::theme for choosing an appropriate theme based on the
    terminal's color scheme, see #2896 (@bash)
    • [BREAKING] Remove HighlightingAssets::default_theme. Use theme::default_theme instead.
  • Add PrettyPrinter::print_with_writer for custom output destinations, see #3070 (@kojix2)

v0.24.0

Choose a tag to compare

@Enselic Enselic released this 11 Oct 18:20

v0.24.0

Features

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
  • Updated version of serde_yaml to 0.9. See #2627 (@Raghav-Bell)
  • Fix arithmetic overflow in LineRange::from and LineRange::parse_range, see #2674, #2698 (@skoriop)
  • Fix paging not happening when stdout is interactive but stdin is not, see #2574 (@Nigecat)
  • Make -pp override --paging and vice versa when passed as a later argument, see #2660 (@J-Kappes)

Other

Syntaxes

bat as a library

  • Add optional output_buffer arg to Controller::run() and Controller::run_with_error_handler(), see #2618 (@Piturnah)

v0.23.0

Choose a tag to compare

@sharkdp sharkdp released this 25 Mar 09:33

Features

  • Implemented -S and --chop-long-lines flags as aliases for --wrap=never. See #2309 (@johnmatthiggins)
  • Breaking change: Environment variables can now override config file settings (but command-line arguments still have the highest precedence), see #1152, #1281, and #2381 (@aaronkollasch)
  • Implemented --nonprintable-notation=caret to support showing non-printable characters using caret notation. See #2429 (@einfachIrgendwer0815)

Bugfixes

  • Fix bat cache --clear not clearing the --target dir if specified. See #2393 (@miles170)

Other

Syntaxes

v0.22.1

Choose a tag to compare

@Enselic Enselic released this 10 Sep 18:09

Bugfixes

  • Bring back pre-processing of ANSI escape characters to so that some common bat use cases starts working again. See #2308 (@Enselic)

v0.22.0

Choose a tag to compare

@sharkdp sharkdp released this 06 Sep 20:55

Features

Bugfixes

  • Prevent fork nightmare with PAGER=batcat. See #2235 (@johnmatthiggins)
  • Make --no-paging/-P override --paging=... if passed as a later arg, see #2201 (@themkat)
  • --map-syntax and --ignored-suffix now works together, see #2093 (@czzrr)
  • Strips byte order mark from output when in non-loop-through mode. See #1922 (@dag-h)

Other

  • Relaxed glibc requirements on amd64, see #2106 and #2194 (@sharkdp)
  • Improved fish completions. See #2275 (@zgracem)
  • Stop pre-processing ANSI escape characters. Syntax highlighting on ANSI escaped input is not supported. See #2185 and #2189 (@Enselic)

Syntaxes

  • NSE (Nmap Scripting Engine) is mapped to Lua, see #2151 (@Cre3per)
  • Correctly color fstab dump and pass fields, see #2246 (@yuvalmo)
  • Update Command Help syntax, see #2255
  • Julia: Fix syntax highlighting for function name starting with struct, see #2230
  • Minor update to LiveScript, see #2291
  • Associate .mts and .cts files with the TypeScript syntax. See #2236 (@kidonng)
  • Fish history is mapped to YAML. See #2237 (@kidonng)

bat as a library

  • Make bat::PrettyPrinter::syntaxes() iterate over new bat::Syntax struct instead of &syntect::parsing::SyntaxReference. See #2222 (@Enselic)
  • Clear highlights after printing, see #1919 and #1920 (@rhysd)

v0.21.0

Choose a tag to compare

@Enselic Enselic released this 12 May 11:39

Features

Bugfixes

Performance

  • Skip syntax highlighting on long lines (> 16384 chars) to help improve performance. See #2165 (@keith-hall)
  • Vastly improve startup time by lazy-loading syntaxes via syntect 5.0.0. This makes bat display small files ~75% faster than before. See #951, #2181 (@Enselic)

Other

Syntaxes

  • Mapped clang-format config file (.clang-format) to YAML syntax (@TruncatedDinosour)
  • log syntax: improved handling of escape characters in double quoted strings. See #2123 (@keith-hall)
  • Associate /var/spool/mail/* and /var/mail/* with the Email syntax. See #2156 (@cyqsimon)
  • Added cmd-help syntax to scope --help messages. See #2148 (@victor-gp)
  • Slightly adjust Zig syntax. See #2136 (@Enselic)
  • Associate .inf files with the INI syntax. See #2190 (@Enselic)

bat as a library

  • Allow configuration of show_nonprintable with PrettyPrinter, see #2142
  • The binary format of syntaxes.bin has been changed due to syntaxes now being lazy-loaded via syntect 5.0.0. See #2181 (@Enselic)
  • Mark bat::error::Error enum as #[non_exhaustive] to allow adding new variants without future semver breakage. See #2181 (@Enselic)
  • Change Error::SyntectError(syntect::LoadingError) to Error::SyntectError(syntect::Error). See #2181 (@Enselic)
  • Add Error::SyntectLoadingError(syntect::LoadingError) enum variant. See #2181 (@Enselic)

v0.20.0

Choose a tag to compare

@Enselic Enselic released this 27 Feb 07:16

Features

  • New style component header-filesize to show size of the displayed file in the header. See #1988 (@mdibaiee)
  • Use underline for line highlighting on ANSI, see #1730 (@mdibaiee)

Bugfixes

Syntaxes

  • GraphQL: Add support for interfaces implementing interfaces and consider ampersand an operator. See #2000
  • Associate _vimrc and _gvimrc files with the VimL syntax. See #2002
  • Associate poetry.lock files with the TOML syntax. See #2049
  • Associate .mesh, .task, .rgen, .rint, .rahit, .rchit, .rmiss, and .rcall with the GLSL syntax. See #2050
  • Added support for JQ syntax, see #2072 (@clarfonthey)
  • Properly associate global git config files rooted in $XDG_CONFIG_HOME/git/ or $HOME/.config/git/. See #2067 (@cyqsimon)

bat as a library

  • Exposed get_syntax_set and get_theme methods on HighlightingAssets. See #2030 (@dandavison)
  • Added HeaderFilename and HeaderFilesize to StyleComponent enum, and mark it #[non_exhaustive]. See #1988 (@mdibaiee)

v0.19.0

Choose a tag to compare

@Enselic Enselic released this 08 Jan 17:02

Performance

  • Reduce startup time in loop-through mode (e.g. when redirecting output) by 90%. See #1747 (@Enselic)
  • Load themes lazily to make bat start 25% faster when disregarding syntax load time. See #1969 (@Enselic)
  • Python syntax highlighting no longer suffers from abysmal performance in specific scenarios. See #1688 (@keith-hall)
  • Fix for poor performance when ANSI escape sequences are piped to bat, see #1596 (@eth-p)
  • Fix for incorrect handling of ANSI escape sequences when using --wrap=never, see #1596 (@eth-p)
  • Load custom assets as fast as integrated assets, see #1753 (@Enselic)

Features

  • Support for x:-delta (minus) syntax in line ranges (e.g. 20:-10). See #1901 (@bojan88)
  • Support for --ignored-suffix argument. See #1892 (@bojan88)
  • $BAT_CONFIG_DIR is now a recognized environment variable. It has precedence over $XDG_CONFIG_HOME, see #1727 (@billrisher)
  • Support for x:+delta syntax in line ranges (e.g. 20:+10). See #1810 (@bojan88)
  • Add new --acknowledgements option that gives credit to theme and syntax definition authors. See #1971 (@Enselic)
  • Include git hash in bat -V and bat --version output if present. See #1921 (@Enselic)

Bugfixes

Other

Syntaxes

bat as a library

  • Deprecate HighlightingAssets::syntaxes() and HighlightingAssets::syntax_for_file_name(). Use HighlightingAssets::get_syntaxes() and HighlightingAssets::get_syntax_for_path() instead. They return a Result which is needed for upcoming lazy-loading work to improve startup performance. They also return which SyntaxSet the returned SyntaxReference belongs to. See #1747, #1755, #1776, #1862 (@Enselic)
  • Remove HighlightingAssets::from_files and HighlightingAssets::save_to_cache. Instead of calling the former and then the latter you now make a single call to bat::assets::build. See #1802, #1971 (@Enselic)
  • Replace the error::Error(error::ErrorKind, _) struct and enum with an error::Error enum. Error(ErrorKind::UnknownSyntax, _) becomes Error::UnknownSyntax, etc. Also remove the error::ResultExt trait. These changes stem from replacing error-chain with thiserror. See #1820 (@Enselic)
  • Add new MappingTarget enum variant MapExtensionToUnknown. Refer to its documentation for more information. Also mark MappingTarget as #[non_exhaustive] since more enum variants might be added in the future. See #1703 (@cbolgiano), #2012 (@Enselic)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.