Releases: sharkdp/bat
Releases · sharkdp/bat
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
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)
v0.22.1
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
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
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 (@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_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
v0.18.2
Features
Bugfixes
- Fix for a security vulnerability on Windows (CVE-2021-36753). 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
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)