53 KiB
unreleased
Features
-
Add build for windows/ARM64 platform. #3190 (@alcroito)
-
Add paging to
--list-themes, see PR #3239 (@einfachIrgendwer0815) -
Support negative relative line ranges, e.g.
bat -r :-10/bat -r='-10:', see #3068 (@ajesipow) -
Support context in line ranges, e.g.
bat -r 30::5/bat -r 30:40:5, see #3345 (@cavanaug)
Bugfixes
- Fix UTF-8 BOM not being stripped for syntax detection, see #3314 (@krikera)
- Fix
BAT_THEME_DARKandBAT_THEME_LIGHTbeing ignored, see issue #3171 and PR #3168 (@bash) - Prevent
--list-themesfrom 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)
Other
- Update base16 README links to community driven base16 work #2871 (@JamyGolden)
- Work around build failures when building
batfrom 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-languagesparameter #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)
Syntaxes
- Add syntax mapping for
paruconfiguration files #3182 (@cyqsimon) - Add support for Idris 2 programming language #3150 (@buzden)
- Add syntax mapping for
nix's 'flake.locklockfiles #3196 (@odilf) - Improvements to CSV/TSV highlighting, with autodetection of delimiter and support for TSV files, see #3186 (@keith-
- Improve (Sys)log error highlighting, see #3205 (@keith-hall)
- Map
ndjsonextension to JSON syntax, see #3209 (@keith-hall) - Map files with
csproj,vbproj,propsandtargetsextensions to XML syntax, see #3213 (@keith-hall) - Add debsources syntax to highlight
/etc/apt/sources.listfiles, see #3215 (@keith-hall) - Add syntax definition and test file for GDScript highlighting, see #3236 (@chetanjangir0)
- Add syntax test file for Odin highlighting, see #3241 (@chetanjangir0)
- Update quadlet syntax mapping rules to cover quadlets in subdirectories #3299 (@cyqsimon)
- Add syntax Typst #3300 (@cskeeters)
- Map
.millfiles to Scala syntax for Mill build tool configuration files #3311 (@krikera) - Add syntax highlighting for VHDL, see #3337 (@JerryImMouse)
- Add syntax mapping for certbot certificate configuration #3338 (@cyqsimon)
- Update Lean syntax from Lean 3 to Lean 4 #3322 (@YDX-2147483647)
- Map
.flatpakrefand.flatpakrepofiles to INI syntax #3353 (@Ferenc-) - Update hosts syntax #3368 (@keith-hall)
Themes
- Add Catppuccin, see #3317 (@SchweGELBin)
- Updated Catppuccin, see #3333 (@SchweGELBin)
- Updated gruvbox, see #3372 (@Nicholas42)
- Updated GitHub theme, see #3382 (@CosmicHorrorDev)
bat as a library
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)
- Use GitHub API to get correct PR submitter #2791 (@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)
v0.24.0
Features
- Add environment variable
BAT_PAGING, see #2629 (@einfachIrgendwer0815) - Add opt-in (
--features lessopen) support forLESSOPENandLESSCLOSE. See #1597, #1739, #2444, #2602, and #2662 (@Anomalocaridid)
Bugfixes
- Fix
morenot being found on Windows when provided viaBAT_PAGER, see #2570, #2580, and #2651 (@mataha) - Switched default behavior of
--map-syntaxto be case insensitive #2520 - Updated version of
serde_yamlto0.9. See #2627 (@Raghav-Bell) - Fix arithmetic overflow in
LineRange::fromandLineRange::parse_range, see #2674, #2698 (@skoriop) - Fix paging not happening when stdout is interactive but stdin is not, see #2574 (@Nigecat)
- Make
-ppoverride--pagingand vice versa when passed as a later argument, see #2660 (@J-Kappes)
Other
- Output directory for generated assets (completion, manual) can be customized, see #2515 (@tranzystorek-io)
- Use the
is-terminalcrate instead ofatty, see #2530 (@nickelc) - Add Winget Releaser workflow, see #2519 (@sitiom)
- Bump MSRV to 1.70, see #2651 (@mataha)
Syntaxes
- Associate
os-releasewithbashsyntax, see #2587 (@cyqsimon) - Associate
ContainerfilewithDockerfilesyntax, see #2606 (@einfachIrgendwer0815) - Replaced quotes with double quotes so fzf integration example script works on windows and linux. see #2095 (@johnmatthiggins)
- Associate
kshfiles withbashsyntax, see #2633 (@johnmatthiggins) - Associate
sariffiles withJSONsyntax, see #2695 (@rhysd) - Associate
ronfiles withrustsyntax, see #2427 (@YeungOnion) - Add support for WebGPU Shader Language, see #2692 (@rhysd)
- Add
.dpkg-newand.dpkg-tmpto ignored suffixe, see #2595 (@scop) - fix: Add syntax mapping
*.jsonl=>json, see #2539 (@WinterCore) - Update
Juliasyntax, see #2553 (@dependabot) - add
NSISsupport, see #2577 (@idleberg) - Update
ssh-config, see #2697 (@mrmeszaros) - Add syntax mapping
*.debdiff=>diff, see #2947 (@jacg)
bat as a library
- Add optional output_buffer arg to
Controller::run()andController::run_with_error_handler(), see #2618 (@Piturnah)
v0.23.0
Features
- Implemented
-Sand--chop-long-linesflags 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=caretto support showing non-printable characters using caret notation. See #2429 (@einfachIrgendwer0815)
Bugfixes
- Fix
bat cache --clearnot clearing the--targetdir if specified. See #2393 (@miles170)
Other
- Various bash completion improvements, see #2310 (@scop)
- Disable completion of
cachesubcommand, see #2399 (@cyqsimon) - Signifigantly improve startup performance on macOS, see #2442 (@BlackHoleFox)
- Bump MSRV to 1.62, see #2496 (@Enselic)
Syntaxes
- Added support for Ada, see #1300 and #2316 (@dkm)
- Added
todo.txtsyntax, see #2375 (@BANOnotIT) - Improve Manpage.sublime-syntax. See #2364 (@Freed-Wu) and #2461 (@keith-hall)
- Added a new
requirements.txtsyntax, see #2361 (@Freed-Wu) - Added a new VimHelp syntax, see #2366 (@Freed-Wu)
- Associate
pdm.lockwithTOMLsyntax, see #2410 Todo.txt: Fix highlighting of contexts and projects at beginning of done.txt, see #2411cmd-help: overhaul scope names (colors) to improve theme support; misc syntax improvements. See #2419 (@victor-gp)- Added support for Crontab, see #2509 (@keith-hall)
Themes
bat as a library
PrettyPrinter::headercorrectly displays a header with the filename, see #2378 and #2406 (@cstyles)
v0.22.1
Bugfixes
- Bring back pre-processing of ANSI escape characters to so that some common
batuse cases starts working again. See #2308 (@Enselic)
v0.22.0
Features
- Make the default macOS theme depend on Dark Mode. See #2197, #1746 (@Enselic)
- Support for separate system and user config files. See #668 (@patrickpichler)
Bugfixes
- Prevent fork nightmare with
PAGER=batcat. See #2235 (@johnmatthiggins) - Make
--no-paging/-Poverride--paging=...if passed as a later arg, see #2201 (@themkat) --map-syntaxand--ignored-suffixnow 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
fstabdump and pass fields, see #2246 (@yuvalmo) - Update
Command Helpsyntax, see #2255 Julia: Fix syntax highlighting for function name starting withstruct, see #2230- Minor update to
LiveScript, see #2291 - Associate
.mtsand.ctsfiles with theTypeScriptsyntax. See #2236 (@kidonng) - Fish history is mapped to YAML. See #2237 (@kidonng)
bat as a library
- Make
bat::PrettyPrinter::syntaxes()iterate over newbat::Syntaxstruct instead of&syntect::parsing::SyntaxReference. See #2222 (@Enselic) - Clear highlights after printing, see #1919 and #1920 (@rhysd)
v0.21.0
Features
- Correctly render tab stops in
--show-all, see #2038 (@Synthetica9) - Add a
--style=defaultoption and make it the default. It is less verbose thanfull, see #2061 (@IsaacHorvath) - Enable BusyBox
lessas pager, see #2162 (@nfisher1226) - File extensions are now matched case-insensitively. See #1854, #2181 (@Enselic)
Bugfixes
- Bump
regexdependency from 1.5.4 to 1.5.5 to fix CVE-2022-24713, see #2145, #2139 (@Enselic) batno longer crashes when encountering files that references missing syntaxes. See #915, #2181 (@Enselic)
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
- Include info about custom assets in
--diagnosticsif used. See #2107, #2144 (@Enselic)
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 theEmailsyntax. See #2156 (@cyqsimon) - Added cmd-help syntax to scope --help messages. See #2148 (@victor-gp)
- Slightly adjust Zig syntax. See #2136 (@Enselic)
- Associate
.inffiles with theINIsyntax. See #2190 (@Enselic)
bat as a library
- Allow configuration of
show_nonprintablewithPrettyPrinter, 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::Errorenum as#[non_exhaustive]to allow adding new variants without future semver breakage. See #2181 (@Enselic) - Change
Error::SyntectError(syntect::LoadingError)toError::SyntectError(syntect::Error). See #2181 (@Enselic) - Add
Error::SyntectLoadingError(syntect::LoadingError)enum variant. See #2181 (@Enselic)
v0.20.0
Features
- New style component
header-filesizeto show size of the displayed file in the header. See #1988 (@mdibaiee) - Use underline for line highlighting on ANSI, see #1730 (@mdibaiee)
Bugfixes
- Fix bash completion on bash 3.x and bash-completion 1.x. See #2066 (@joshpencheon)
Syntaxes
GraphQL: Add support for interfaces implementing interfaces and consider ampersand an operator. See #2000- Associate
_vimrcand_gvimrcfiles with theVimLsyntax. See #2002 - Associate
poetry.lockfiles with theTOMLsyntax. See #2049 - Associate
.mesh,.task,.rgen,.rint,.rahit,.rchit,.rmiss, and.rcallwith theGLSLsyntax. See #2050 - Added support for
JQsyntax, see #2072 - 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_setandget_thememethods onHighlightingAssets. See #2030 (@dandavison) - Added
HeaderFilenameandHeaderFilesizetoStyleComponentenum, and mark it#[non_exhaustive]. See #1988 (@mdibaiee)
v0.19.0
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-suffixargument. See #1892 (@bojan88) $BAT_CONFIG_DIRis now a recognized environment variable. It has precedence over$XDG_CONFIG_HOME, see #1727 (@billrisher)- Support for
x:+deltasyntax in line ranges (e.g.20:+10). See #1810 (@bojan88) - Add new
--acknowledgementsoption that gives credit to theme and syntax definition authors. See #1971 (@Enselic) - Include git hash in
bat -Vandbat --versionoutput if present. See #1921 (@Enselic)
Bugfixes
- First line not shown in diff context. See #1891 (@divagant-martian)
- Do not ignore syntaxes that handle file names with a
*.confextension. See #1703 (@cbolgiano)
Other
- Add PowerShell completion, see #1826 (@rashil2000)
- Minimum supported Rust version (MSRV) bumped to 1.51, see #1994 (@mdibaiee)
Syntaxes
- Groff, see #1685 (@scop)
- HTTP Requests and Responses, see #1748 (@keith-hall)
- LLVM, see #1777 (@ioncodes)
- Highlight for
vimrcandgvimrcfiles, see #1763 (@SuperSandro2000) - Syslog highlighting improvements, see #1793 (@scop)
- Added support for
slimsyntax, see #1693 (@mfinelli) - Racket, see #1884 (@jubnzv)
- LiveScript, see #1915 (@Enselic)
- MediaWiki, see #1925 (@sorairolake)
- The
requirements.txtsyntax has been removed due to incompatible license requirements. - Dart, new highlighter, see #1959 (@Ersikan)
- SCSS and Sass syntaxes updated, see #1766 (@Enselic)
- PowerShell syntax updated, see #1935 (@Enselic)
- TypeScript syntax updated, see #1834 (@Enselic)
bat as a library
- Deprecate
HighlightingAssets::syntaxes()andHighlightingAssets::syntax_for_file_name(). UseHighlightingAssets::get_syntaxes()andHighlightingAssets::get_syntax_for_path()instead. They return aResultwhich is needed for upcoming lazy-loading work to improve startup performance. They also return whichSyntaxSetthe returnedSyntaxReferencebelongs to. See #1747, #1755, #1776, #1862 (@Enselic) - Remove
HighlightingAssets::from_filesandHighlightingAssets::save_to_cache. Instead of calling the former and then the latter you now make a single call tobat::assets::build. See #1802, #1971 (@Enselic) - Replace the
error::Error(error::ErrorKind, _)struct and enum with anerror::Errorenum.Error(ErrorKind::UnknownSyntax, _)becomesError::UnknownSyntax, etc. Also remove theerror::ResultExttrait. These changes stem from replacingerror-chainwiththiserror. See #1820 (@Enselic) - Add new
MappingTargetenum variantMapExtensionToUnknown. Refer to its documentation for more information. Also markMappingTargetas#[non_exhaustive]since more enum variants might be added in the future. See #1703 (@cbolgiano), #2012 (@Enselic)
v0.18.3
Bugfixes
- Bump
git2dependency to fix build with Rust 1.54, see #1761
v0.18.2
Features
- Ignore known backup/template filename suffixes when selecting the syntax, see #1687 (@scop)
Bugfixes
- Fix for a security vulnerability on Windows. Prior to this release,
batwould execute programs calledless/less.exefrom the current working directory (instead of the one fromPATH) with priority. An attacker might be able to use this by placing a malicious program in a shared directory where the user would executebat.batusers on Windows are advised to upgrade to this version. See #1724 and #1472 (@Ry0taK).
Other
- Add bash completion, see #1678 (@scop)
- Fix Clippy lints, see #1661 (@mohamed-abdelnour)
- Add syntax highlighting test files, see #1213 and #1668 (@mohamed-abdelnour)
Syntaxes
- Upgraded Julia syntax to fix a highlighting bug, see #1692
- Added support for
dashsyntax, see #1654 (@mohamed-abdelnour) - Added support for
XAMLsyntax, see #1590 and #1655 (@mohamed-abdelnour) - Apply
DotENVsyntax also for.env.defaultand.env.defaultsfiles, see #1669
v0.18.1
Bugfixes
- Mouse support and screen clearing broken for
lessversions with minor version number (581.2), see #1629 and #1639 (@aswild)
Other
Input::ordinary_fileandInput::with_namenow acceptPathrather thanOsStrsee #1571 (@matklad)- The
LESSenvironment variable is now included inbat --diagnostic, see #1589 (@Enselic) - Increased min. required Rust version to 1.45
Syntaxes
- Improved the Syslog syntax highlighting, see #1606 (@keith-hall)
- Replaced "Advanced CSV" with a custom CSV syntax definition written especially for
bat; see #1574 (@keith-hall) - Added SystemVerilog file syntax, see #1580 (@SeanMcLoughlin)
- Added Solidity and Vyper syntax, see #1602 (@Ersikan)
New themes
- Dark+ VS Code theme, see #1588 and #1598 (@PatriotRossii)
v0.18.0
Features
- Use a pager when
bat --list-languagesis called, see #1394 (@stku1985)
Bugfixes
- If the last line doesn't end with a newline character, don't add it if
--style=plain, see #1438 (@Enselic) - Only print themes hint in interactive mode (
bat --list-themes), see #1439 (@rsteube) - Make ./tests/syntax-tests/regression_test.sh work on recent versions of macOS, see #1443 (@Enselic)
- VimL syntax highlighting fix, see #1450 (@esensar)
- Print an 'Invalid syntax theme settings' error message if a custom theme is broken, see #614 (@Enselic)
- If plain mode is set and wrap is not explicitly opted in, long lines will no be truncated, see #1426
- If
PAGER(but notBAT_PAGERor--pager) ismoreormost, silently uselessinstead to ensure support for colors, see #1063 (@Enselic) - If
PAGERisbat, silently uselessto prevent recursion. ForBAT_PAGERor--pager, exit with error, see #1413 (@Enselic) - Manpage highlighting fix, see #1511 (@keith-hall)
BAT_CONFIG_PATHignored bybatif non-existent, see #1550 (@sharkdp)
Other
- Performance improvements, see #1421 (@LovecraftianHorror)
- Added a new
--diagnosticoption to collect information for bug reports, see #1459 (@sharkdp) - Modified default theme colors to differentiate between a JSON key and a string value, see #1400 (@keith-hall)
- Upped min required Rust version to 1.42
Syntaxes
- Added Zig syntax, see #1470 (@paulsmith)
- Added Lean syntax, see #1446 (@Julian)
- Added
.resourceextension for Robot Framework files, see #1386 - Added
gnuplotsyntax, see #1431 (@sharkdp) - Highlight *.pac (Proxy auto-config) files as JavaScript, see #1515 (@sharkdp)
New themes
ansireplacesansi-darkandansi-light, see #1104 and #1412 (@mk12). Breaking change: users that were previously using one of theansi-*themes should switch toansi.- The Gruvbox theme has been updated, see #1291 (@j0hnmeow). Breaking change: users that were previously using
gruvboxorgruvbox-whiteshould update and usegruvbox-dark/gruvbox-lightinstead.
bat as a library
- The following
PrettyPrintermethods have been removed (they were previously deprecated):input_stdin_with_nameinput_from_bytes_with_nameinput_from_reader_with_namevcs_modification_markers(if thegitfeature is not enabled)
v0.17.1
Bugfixes
- Running
batwithout arguments fails ("output file is also an input"), see #1396
v0.17.0
Features
- Added a new
--stylevalue,rule, which adds a simple horizontal ruled line between files, see #1276 (@tommilligan) - Pass
-S("chop long lines") tolessif--wrap=neveris set inbat, see #1255 (@gahag)
Bugfixes
- Detect infinite loop when input and output are the same, see #1193 and #1197 (@niklasmohrin)
- Throw an error when
batis being used aspager, see #1343 (@adrian-rivera) - Bash syntax highlighting not selected for
*.ebuildand*.eclassfiles, see #1292 (@sharkdp) - Fix
zshcompletion when using-p, see #1320 (@xzfc)
Other
- Add note to refer to see detailed help with
--help(and vice versa with-h), see #1215 (@henil) - Add a
Contributorssection toREADME, see #1348 (@adrian-rivera)
Syntaxes
- Manpage syntax highlighting has been improved, see #1315 (@keith-hall)
- Add Svelte file syntax, see #1285 (@kjmph)
New themes
- Coldark, see #1329 (@armandphilippot)
v0.16.0
Features
- Added support for the
NO_COLORenvironment variable, see #1021 and #1031 (@eth-p) - Added
-Pshort flag to disable paging, see #1075 and #1082 (@LordFlashmeow) - Added
--force-colorization/-fflag to provide an alias for forced color and decoration output, see #1141 (@alexanderkarlis)
Bugfixes
- Fixed non-printable characters display for redirected output, see #1061 (@gsomix)
- Handle file extension conflicts in
--list-languages, see #1076 and #1135 (@Kienyew)
Other
- Switched to "·" (U+00B7) Middle Dot from "•" (U+2022) Bullet for non-printing spaces, see #1056 and #1100 (@LordFlashmeow)
- Added zsh shell completion script, see #1136 (@Kienyew)
- Improved
--helptext (@sharkdp) - Added custom languages/themes sections to manpage (@eth-p)
Syntaxes
- Update AsciiDoc syntax, see #1034 (@rxt1077)
- GLSL (@caioalonso)
- Add Nginx and Apache config file syntax, see #1137 (@kjmph, @niklasmohrin)
- Use
fstabsyntax forcrypttabfiles, see #1073 (@sharkdp) - Support syntax highlighting for files in
$XDG_CONFIG_HOME/git/, see #1191 (@ahmedelgabri)
New themes
- Gruvbox, see #1069 (@kyleondy)
- base16-256 for base16-shell users, see #1111 (@mk12)
bat as a library
- Add APIs to provide
Inputdescriptions withInputDescription(@eth-p) - Add function to directly provide
Inputs toPrettyPrinter(@eth-p) - Breaking:
Input::theme_preview_fileis no longer available. (@eth-p)
Packaging
- Removed build dependency on
liquid(@sharkdp).
v0.15.4
Bugfixes
- Added missing Solarized themes, see #1027
- Fixed highlighting bug in Haskell source files, see #1026
v0.15.3
Bugfixes
- Cannot run
batwith relative paths, see #1022 - bat mishighlights Users that start with digits in SSH config, see #984
New syntaxes
- SML, see #1005 (@kopecs)
Other
- Some syntaxes and themes have been updated to the latest version
v0.15.2
Bugfixes
- Fix syntax detection for files called 'rails', see #1008
- Fix potential errors with syntax detection for symlinked files, see #1001
--map-syntaxdoesn't work with names provided through--file-name(@eth-p)
Other
- Add padding above headers when not using a grid, see #968 and #981 (@pt2121)
- bat now prints an error if an invalid syntax is specified via
-lor--map-syntax, see #1004 (@eth-p)
bat as a library
PrettyPrinter::vcs_modification_markershas been marked deprecated when building without thegitfeature, see #997 and #1020 (@eth-p, @sharkdp)
Packaging
- Compilation problems with
onig_syson various platforms have been resolved by upgrading tosyntect 4.2, which includes a newonigversion that allows to buildonig_syswithout thebindgendependency. This removes the need forlibclang(-dev)to be installed to compilebat. Package maintainers might want to removeclangas a build dependency. See #650 for more details.
v0.15.1
Bugfixes
- Fix highlighting of Markdown files, see #963 and #977
- Fix
base16theme (was broken since in v0.14), see #972, #934 and #979 (@mk12). Users suffering from #865 ("no color for bat in ssh from a Windows client") can use theansi-darkandansi-lightthemes from now on.
New syntaxes
- Fortran, see #957
- Email (@mariozaizar)
- QML, see #962 (@pylipp)
v0.15.0
Features
- Add a new
--diff/-doption that can be used to only show lines surrounding Git changes, i.e. added, removed or modified lines. The amount of additional context can be controlled with--diff-context=N. See #23 and #940
Bugfixes
- Error message printed in the middle of the output for another file, see #946
- Performance improvements when using custom caches (via
bat cache --build): thebatstartup time should now be twice as fast (@lzutao).
Themes
- Updated version of the Solarized dark/light themes, see #941
bat as a library
- There are a few changes in the "low level" API (the
Configstruct has changed and the error handler needs a new&mut dyn Writeargument). The high-level API is not affected.
v0.14.0
Features
- Added a new
--file-name <name>…option to overwrite the displayed filename(s) in the header. This is useful when piping input intobat. See #654 and #892 (@neuronull). - Added a new
--generate-config-fileoption to create an initial configuration file at the right place. See #870 (@jmick414)
Bugfixes
- Performance problems with C# source code have been fixed, see #677 (@keith-hall)
- Performance problems with Makefiles have been fixed, see #750 (@keith-hall)
- Fix bug when highlighting Ruby files with unindented heredocs, see #914 (@keith-hall)
- A highlighting problem with Rust source code has been fixed, see #924 (@keith-hall)
- Windows: short files that do not require paging are displayed and then lost, see #887
--highlight-linedid not work correctly in combination with--tabs=0and--wrap=never, see #937
Other
- When saving/reading user-provided syntaxes or themes,
batwill now maintain ametadata.yamlfile which includes information about thebatversion which was used to create the cached files. When loading cached files, we now print an error if they have been created with an incompatible version. See #882 - Updated
liquiddependency to 0.20, see #880 (@ignatenkobrain)
bat as a library
-
A completely new "high level" API has been added that is much more convenient to use. See the
examplesfolder for the updated code. The older "low level" API is still available (basically everything that is not in the rootbatmodule), but has been refactored quite a bit. It is recommended to only use the new "high level" API, if possible. This will be much easier to keep stable. Note that this should still be considered a "beta" release ofbat-as-a-library. For more details and some screenshots of the example programs, see #936. -
Stripped out a lot of binary-only dependencies, see #895 and #899 (@dtolnay)
This introduces a
features = ["application"]which is enabled by default and pulls in everything required bybatthe application. When depending on bat as a library, downstreamCargo.tomlshould disable this feature to cut out inapplicable heavy dependencies:[dependencies] bat = { version = "0.14", default-features = false }Other optional functionality has also been put behind features:
pagingandgitsupport. -
Allow using the library with older syntect, see #896 and #898 (@dtolnay)
New syntaxes
- Rego, see #872 (@patrick-east)
- Stylo, see #917
v0.13.0
bat as a library
Beginning with this release, bat can be used as a library (#423).
This was a huge effort and I want to thank all people who made this possible: @DrSensor, @mitsuhiko, @mre, @eth-p!
- Initial attempt in #469 (@mitsuhiko)
- Second attempt, complete restructuring of the
batcrate, see #679 (@DrSensor) - Updates to example, public API, error handling, further refactoring: #693 #873 #875 (@sharkdp)
I want to stress that this is the very first release of the library. Things are very likely to change. A lot of things are still missing (including the documentation).
That being said, you can start using it! See the example programs in examples/.
You can see the API documentation here: https://docs.rs/bat/
Features
-
(Breaking change) Glob-based syntax mapping, see #877 and #592. With this change, users need to update their bat config files (
bat --config-file), if they have any--map-syntaxsettings present.The option now works like this:
--map-syntax <glob-pattern>:<syntax-name>For more information, see the
--helptext, the man page or the README.This new feature allows us to properly highlight files like:
/etc/profile~/.ssh/config
-
--highlight-linenow accepts line ranges, see #809 (@lkalir) -
Proper wrapping support for output with wide Unicode characters, see #811 #787 and #815 (@Kogia-sima)
-
A lot of updates to existing syntaxes via #644 (@benwaffle, @keith-hall)
-
BAT_CACHE_PATHcan be used to place cachedbatassets in a non-standard path, see #829 (@neuronull) -
Support combination of multiple styles at the same time, see #857 (@aslpavel)
Bugfixes
- Do not pass '--no-init' on newer less versions, see #749 and #786 (@sharkdp)
- 'bat cache' still takes precedence over existing files, see #666 (@sharkdp)
.scfiles should be treated as scala files, see #443 (@benwaffle)- Allow underscores and dashes in page names, see #670 (@LunarLambda)
- Keep empty lines empty, see #601 (@mbarbar)
- Wrapping does not work when piping, see #758 (@fusillicode, @allevo, @gildo)
- Allow for non-unicode filenames, see #225 (@sharkdp)
- Empty file without header produces incomplete grid, see #798 (@eth-p)
- Files named
builddon't respect shebang lines, see #685 (@sharkdp)
Other
- Parametrizable names for man page and shell completion files, see #659 #673 #656 (@eth-p)
- Enabled LTO, making
batabout 10% faster, see #719 (@bolinfest, @sharkdp) - Suggestions non how to configure
batfor MacOS dark mode, see README (@jerguslejko) - Extended "Integration with other tools" section (@eth-p)
- Updated instrutions on how to use
batas aman-pager, see #652, see #667 (@sharkdp) - Add section concerning file encodings, see #688 and #568 (@sharkdp)
- Updated sort order of command-line options in
--helptext and manpage, see #653 and #700 (@hrlmartins) - Updates to the man page syntax, see #718 (@sharkdp)
- Japanese documentation updates, see #863 (@k-ta-yamada, @sorairolake and @wt-l00)
- Accept "default" as a theme, see #757 (@fvictorio)
- Updated Windows installation instructions, see #852 (@sorenbug)
- Updated man page, see #573 (@sharkdp)
New syntaxes
- Jinja2, see #648 (@Martin819)
- SaltStack SLS, see #658 (@Martin819)
/etc/fstab, see #696 (@flopp and @eth-p)/etc/groupand/etc/passwd, see #698 (@argentite)/proc/cpuinfoand/proc/meminfo, see #593 (@sharkdp)- Nim, see #542 (@sharkdp)
- Vue, see #826 (@chaaaaarlotte)
- CoffeScript, see #833 (@sharkdp)
New themes
- Dracula, see #687 (@clarfon)
- Nord, see #760 (@crabique)
- Solarized light and dark, see #768 (@hakamadare)
Packaging
batis now in the official Ubuntu and Debian repositories, see #323 and #705 (@MarcoFalke)batcan now be installed via MacPorts, see #675 (@bn3t)- Install fish completions into 'vendor_completions.d', see #651 (@sharkdp)
Thanks
- To @eth-p for joining me as a maintainer! I'm very grateful for all the work you put into managing and responding to issues, improving our deployment, adding PR/issue templates (#837) as well as fixing bugs and implementing new features.
v0.12.1
Bugfixes
- Fixes a bug for older Windows versions ("The procedure entry point
CreateFile2could not be located"), see #643 (@rivy)
v0.12.0
Features
- Binary file content can now be viewed with
bat -A, see #623, #640 (@pjsier and @sharkdp) batcan now be used as a man pager. Take a look at the README and #523 for more details.- Add new style component to separate multiple
--line-ranges, see #570 (@eth-p) - Added
-Las an alias for--list-languages
Bugfixes
- Output looks unbalanced when using '--style=grid,numbers' without 'header', see #571 (@eth-p)
- issues with filenames starting with "cache", see #584
- Can't build cache with new theme without creating cache dir, see #576 (@frm)
--terminal-width -10is parsed incorrectly, see #611
Other
- Added fish completions to DEB package, see #554
New syntaxes
- Emacs Org mode, see #36 (@bricewge)
requirements.txt- DotENV
.env - SSH config syntax (
-l ssh_config), see #582 (@issmirnov) /etc/hosts, see #583 (@issmirnov)- GraphQL, see #625 (@dandavison)
- Verilog, see #616
- SCSS and Sass, see #637
stracesyntax, see #599
Packaging
batis now in the official Gentoo repositories, see #588 (@toku-sa-n)batis now in the official Alpine Linux repositories, see #586 (@5paceToast)batis in the official Fedora repositories, see #610 (@ignatenkobrain)
v0.11.0
Features
- Three new special color themes are available:
ansi-light,ansi-darkandbase16. These are useful for people that often switch from dark to light themes in their terminal emulator or for people that want the colors to match their terminal theme colors. For more details, see #543 and #490 (@mk12, implementation idea by @trishume) - Hand-written auto completion script for Fish shell, see #524 and #555 (@ev-dev and @eth-p)
- The
-p/--plainoption can now be used twice (typically-pp). The first-pswitches the--styleto "plain". The second-pdisables the pager. See #560 and #552 (@eth-p)
Bugfixes
- Do not replace arguments to
lesswhen using--pager, see #509 - Binary files will now be indicated by a warning in interactive mode, see #530 #466 #550 (@maxfilov)
- Empty files are (once again) printed with a single header line, see #504 and #566 (@reidwagner and @sharkdp)
--terminal-width=0is now disallowed, see #559 (@eth-p)- Accidental printing of files named
cache, see #557
Other
- New integration tests, see #500 and #502 (@reidwagner and @sharkdp)
- New "Integration with other tools" section in the README.
- Migrated to Rust 2018 (@expobrain)
New syntaxes
- F# syntax has been updated, see #531 (@stroborobo)
- Fish shell, see #548 (@sanga)
Packaging
batis now available on Chocolatey, see #541 (@rasmuskriest)
v0.10.0
Features
- Added new
--highlight-line <N>option, see #453, #346 and #175 (@tskinn and @sharkdp)
Changes
- Change the default configuration directory on macOS to
~/.config/bat, see #442 (@lavifb). If you are on macOS, you need to copy your configuration directory from the previous place (~/Library/Preferences/bat) to the new place (~/.config/bat). - Completely disabled the generation of shell completion files, see #372
- Properly set arguments to
lessifPAGERenvironment variable contains something likeless -F(which is missing the-Roption), see #430 (@majecty) - Report the name of missing files, see #444 (@ufuji1984)
- Don't start pager if file doesn't exist, see #387
- Rename
bat cache --inittobat cache --build, see #498 - Move the
--config-dirand--cache-diroptions frombat cachetobatand hide them from the help text.
Bugfixes
- Blank line at the end of output when using
--style=plain, see #379 - EOF must be sent twice on stdin if no other input is sent, see #477 (@reidwagner)
New syntaxes
- Twig (@ahmedelgabri)
.desktopfiles (@jleclanche)- AsciiDoc (@markusthoemmes)
- Assembly (x86_64 and ARM)
- Log files (@caos21)
- Protobuf and ProtobufText (@caos21)
- Terraform (@caos21)
- Jsonnet (@hfm)
- Varlink (@haraldh)
Other
- Added Japanese version of README (@sh-tech and @object1037)
- Code improvements (@barskern)
v0.9.0
Features
-
A new
-A/--show-alloption has been added to show and highlight non-printable characters (in analogy to GNUcats option):see #395 and #381 for more details.
-
Added
--pageroption (to configure the pager from the configuration file), see #362 (@majecty) -
Added
BAT_CONFIG_PATHenvironment variable to set a non-default path forbats configuration file, see #375 (@deg4uss3r) -
Allow for multiple occurrences of
--styleto allow for the configuration of styles from the config file, see #367 (@sindreij) -
Allow for multiple
--line-rangearguments, see #23 -
The
--terminal-widthoption can now also accept offsets, see #376
Changes
-
Use of italics is now disabled by default (see #389 for details). They can be re-enabled by adding
--italic-text=alwaysto your configuration file. -
The default tab-width has been set to 4.
-
Added new "Sublime Snazzy" theme.
-
Shell completions are currently not shipped anymore, see #372 for details.
Bugfixes
- Avoid endless recursion when
PAGER="bat", see #383 (@rodorgas)
Other
-
batis now available on openSUSE, see #405 (@dmarcoux) -
Added section about the new configuration file in the README (@deg4uss3r)
-
Chinese translation of README (@chinanf-boy)
-
Re-written tests for
--tabs(@choznerol) -
Speed up integration tests, see #394
v0.8.0
Features
-
Support for a configuration file with the following simple format:
--tabs=4 --theme="Sublime Snazzy" # A line-comment --map-syntax .ignore:.gitignore --map-syntax PKGBUILD:bash --map-syntax Podfile:ruby # Flags and options can also be on a single line: --wrap=never --paging=neverThe configuration file path can be accessed via
bat --config-file. On Linux, it is stored in~/.config/bat/config. -
Support for the
BAT_OPTSenvironment variable with the same format as specified above (in a single line). This takes precedence over the configuration file.See also #310.
-
Support for custom syntax mappings via the
-m/--max-syntaxoption.This allows users to (re)map certain file extensions or file names to an existing syntax:
bat --map-syntax .config:json ...The option can be use multiple times. Note that you can easily make these mappings permanent by using bats new configuration file.
See #169
-
Support pager command-line arguments in
PAGERandBAT_PAGER, see #352 (@Foxboron) -
Add support for wildcards in Windows CMD, see #309 (@zxey)
-
First-line syntax detection for all input types, see #205
-
Encoding support for UTF-16LE and UTF-16BE, see #285
-
New syntaxes: Robot framework (@sanga)
Changes
- Binary files are now detected and not displayed when the output goes to an interactive terminal, see #205
Bugfixes
-
JavaDoc comments break syntax highlighting in .java files, see #81
-
Bat Panics on Haskell Source Code, see #314
Other
-
Better
-hand--helptexts. -
Updated documentation on how to configure
bats pager -
Updated documentation for light backgrounds, see #328 (@russtaylor)
-
Generate shell completions during build, see #115 (@davideGiovannini)
-
A lot of new tests have been written
-
batis now available via Termux, see #341 (@fornwall) -
batis now available via nix, see #344 (@mgttlinger) -
batis now available via Docker, see #331 (@danlynn)
v0.7.1
Features
- Use the
ansi_colourspackage by @mina86 for better true-color approximation on 8 bit color terminals, see #319 and #202.
Bugfixes
- Bat Panics on Haskell Source Code, see #314
- Disable wrapping when
--style=plain/-pis used, see #289
Other
- Added Ansible install instructions (@aeimer)
- Added section about Cygwin to the README (@eth-p)
v0.7.0
Features
-
Tabs are now (optionally) expanded to spaces. This can be controlled with the new
--tabscommand-line option or theBAT_TABSenvironment variable. The new feature also closes two bugs #166 and #184. For more information, see #302 (@eth-p). -
Added support for the
BAT_STYLEenvironment variable, see #208 (@ms2300) -
Added
OneHalftheme for terminals with a light-gray background, see #256 -
Added new syntaxes for CSV, JSX in JavaScript and TypeScript, Cabal, Dart, F#, PureScript, Swift, Crystal, PowerShell (Many Thanks to @tobenna and @mimadrid)
Changes
-
Query
git diffonly when needed, see #303 (@ShikChen) -
Disable wrapping when
--plainis used, see #289 (@eth-p)
Bugfixes
-
Can read files named
cache, see #275 (@BK1603) -
A lot of bugfixes for Windows, see #252, #264
-
Detect
lessreliably and in a portable way, see #271 and #290 (@Aankhen) -
last decoration line is not formatted properly with
--wrap never, see #299 (@Rogach) -
Do not show file header for directories, see #292
Other
-
Enabled a new
aarch64build target, see #258 (@rachitchokshi) -
Provide Debian packages for
armhf, see #280 (@rachitchokshi) -
Added README section about "
baton Windows" (@Aankhen) -
Windows installation via scoop (@meltinglava)
v0.6.1
Bugfixes
- Fixed panic when running
bat --list-languages | head, see #232 (@mchlrhw) - Respect
--colorsettings for--list-themesand--list-languages, see #233 - Git modifications now work on Windows
Other
- There will be auto-generated Windows releases, starting with this version (@anykao)
v0.6.0
Features
- The
--list-themesoption now shows a preview for each highlighting theme (@ms2300) - Added
-p/--plainas an alias for--style=plain, see #212 (@ms2300) - Major refactorings, enabling some progress on #150. In non-interactive mode,
batwill now copy input bytes 1:1. - New languages: Elm, Kotlin, Puppet, TypeScript, see #215 #216 #217 #218
- New syntax highlighting theme: zenburn (@colindean)
Changes
- New themes in
$BAT_CONFIG_DIR/themesare now loaded in addition to the default themes (they may also override), see #172 - The
Default.tmThemesymlink is not necessary anymore.
Bugfixes
- Using
bat cache --initleads to duplicated syntaxes, see #206
Other
- Extended and cleaned-up
--helptext. - Added initial version of a man page, see #52
- New README sections: Development and Troubleshooting, see #220
v0.5.0
Features
- Added
--line-range n:moption to print a range of lines, see #159 (@tskinn) - The syntax highlighting theme can now be controlled by the
BAT_THEMEenvironment variable, see README and #177 (@mandx) - The
PAGERandBAT_PAGERenvironment variables can be used to control the pager thatbatuses, see #158 and the new README section - Added syntax highlighting for Nix, see #180
- Added syntax highlighting for AWK (Gert Hulselmans)
Changes
- The customization of syntax sets and theme sets is now separated. Syntax definitions are now loaded in addition to the ones that are stored in the
batbinary by default. Please refer to these new sections in the README: Adding new syntaxes, Adding new themes, also see #172 - The color for the filename is now the default foreground color. The colors for the grid and the line numbers is now determined from the syntax highlighting theme, which now also works for light backgrounds, see #178.
Bugfixes
- Escape Sequences get partially stripped, see #182 (@eth-p)
- Use separate Git repository for snapshot testing, see #165 and #161
- Markdown breaking on JavaScript, see #183
Other
- Binaries for armv7 are now provided, see #196
batis now in the official Arch package repositories.- Optimizations in the RGB => 8-bit conversion (@mina86)
v0.4.1
(this is just a small bugfix release, see 0.4.0 for all features and changes)
Bugfixes
- Fix problem with
cargo testwhenbatis not checked out in a Git repository, see #161
v0.4.0
Features
- Support for line-wrapping, see #54 and #102 (@eth-p)
- New and updated
--styleparameter, see #74 and README (@pitkley) - Added
--themeand--list-themesoptions, see #89 (@rleungx) - Added syntax highlighting for: Julia (@iamed2), Dockerfiles, VimL, CMake, INI, Less
- Added a few popular Sublime Text highlighting themes, see #133
- Support for bold, italic and underline font styles, see #96
- Support for 32bit systems is now available, see #84
- Added
-uand-noptions, see #134 - ANSI color support on Windows 10
Changes
- The customization folder for own syntaxes has been renamed from
syntaxtosyntaxes, see README. - Changed Markdown syntax to the default Sublime Text syntax, see #157
- Sorted language listing (@rleungx)
- Command line arguments like
--themeor--colorcan now override themselves. - Improved
--helptext.
Bugfixes
- Fixed crash for (really) small terminal sizes, see #117 (@eth-p)
- Syntax detection for
.bashrc,CMakeLists.txtetc., see #100 - Properly handle lines with invalid UTF-8, see #7 (@BrainMaestro)
- Better error handling, see #17 (@rleungx and @sharkdp)
- Proper handling of UTF-8 characters in
less, see #98 (@ghuls) - Build fix on nightly, see #148 (@tathanhdinh)
Other
- Comparison with alternative projects.
- New "bat" logo in the README, see #119 (@jraulhernandezi)
- Output test cases (@BrainMaestro)
- Lots of great refactoring work (@BrainMaestro)
v0.3.0
Features
- Automatic paging by integrating with
less, see #29 (@BrainMaestro) - Added support for reading from standard input, see #2
- Added support for writing to non-interactive terminals (pipes, files, ..); new
--color=auto/always/neveroption, see #26 (@BrainMaestro) - Added
--list-languagesoption to print all available syntaxes, see #69 (@connorkuehl) - New option to specify the syntax via
-l/--language, see #19 (@BrainMaestro) - New option to control the output style (
--style), see #5 (@nakulcg) - Added syntax highlighting support for TOML files, see #37
Changes
- The
init-cachesub-command has been removed. The cache can now be controlled viabat cache. Seebat cache -hfor all available commands.
Bug fixes
- Get git repository from file path instead of current directory, see #22 (@nakulcg)
- Process substitution can now be used with bat (
bat <(echo a) <(echo b)), see #80
Thanks
I'd like to say a big THANK YOU to all contributors and everyone that has given us some form of feedback.
Special thanks go to @BrainMaestro for his huge support with new features, bug reports and code reviews!
v0.2.3
- Added a new statically linked version of bat (
..-musl-..)
v0.2.2
- Remove openssl dependency completely, see #30.
v0.2.1
- Added Elixir syntax, see #25.
- Use libcurl-openssl instead of libcurl-gnutls, see #30.
v0.2.0
- Support for custom syntaxes, add 'Markdown extended' theme
- Bugfix: Git modifications not shown from child folder
v0.1.0
Initial release