Skip to content

@sharkdp sharkdp released this Nov 23, 2020 · 213 commits to master since this release

Features

  • Added a new --style value, rule, which adds a simple horizontal ruled line between files, see #1276 (@tommilligan)
  • Pass -S ("chop long lines") to less if --wrap=never is set in bat, see #1255 (@gahag)

Bugfixes

Other

  • Add note to refer to see detailed help with --help (and vice versa with -h), see #1215 (@henil)
  • Add a Contributors section to README, see #1348 (@adrian-rivera)

Syntaxes

New themes

Assets 17

@sharkdp sharkdp released this Oct 2, 2020 · 448 commits to master since this release

Features

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 --help text (@sharkdp)
  • Added custom languages/themes sections to manpage (@eth-p)

Syntaxes

New themes

bat as a library

  • Add APIs to provide Input descriptions with InputDescription (@eth-p)
  • Add function to directly provide Inputs to PrettyPrinter (@eth-p)
  • Breaking: Input::theme_preview_file is no longer available. (@eth-p)

Packaging

  • Package maintainers: note that we now include zsh shell completion files
  • Removed build dependency on liquid (@sharkdp).

Thanks

Special thanks to @rivy for porting our CI/CD workflows to Github Actions. Also, many thanks to @Kienyew and @eth-p for major contributions!

Assets 17

@sharkdp sharkdp released this May 26, 2020

Bugfixes

  • Cannot run bat with relative paths, see #1022
  • bat mishighlights Users that start with digits in SSH config, see #984

New syntaxes

Other

  • Some syntaxes and themes have been updated to the latest version
Assets 14

@sharkdp sharkdp released this May 25, 2020

Warning: this release suffers from #1022. bat will panic when called with a relative file path.

Bugfixes

  • --map-syntax doesn't work with names provided through --file-name (@eth-p)
  • Fix syntax detection for files called 'rails', see #1008
  • Fix potential errors with syntax detection for symlinked files, see #1001

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 -l or --map-syntax, see #1004 (@eth-p)

bat as a library

  • PrettyPrinter::vcs_modification_markers has been marked deprecated when building without the git feature, see #997 and #1020 (@eth-p, @sharkdp)

Packaging

  • Compilation problems with onig_sys on various platforms have been resolved by upgrading to syntect 4.2, which includes a new onig version that allows to build onig_sys without the bindgen dependency. This removes the need for libclang(-dev) to be installed to compile bat. Package maintainers might want to remove clang as a build dependency. See #650 for more details.
Assets 14

@sharkdp sharkdp released this May 11, 2020

Bugfixes

  • Fix highlighting of Markdown files, see #963 and #977
  • Fix base16 theme (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 the ansi-dark and ansi-light themes from now on.

New syntaxes

Assets 14

@sharkdp sharkdp released this Apr 25, 2020

Features

  • This release adds a new --diff/-d option 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

    You can use a bash function like

    batdiff() {
        git diff --name-only --diff-filter=d 2>/dev/null | xargs bat --diff
    }

    to essentially get a version of git diff with syntax highlighting (but without being able to see the old version).

    image

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): the bat startup 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 Config struct has changed and
    the error handler needs a new &mut dyn Write argument). The high-level API is not
    affected.
Assets 14

@sharkdp sharkdp released this Apr 22, 2020

Features

  • Added a new --file-name <name>… option to overwrite the displayed filename(s)
    in the header. This is useful when piping input into bat. See #654 and #892 (@neuronull).
  • Added a new --generate-config-file option 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-line did not work correctly in combination with --tabs=0 and --wrap=never,
    see #937

Other

  • When saving/reading user-provided syntaxes or themes, bat will now maintain a
    metadata.yaml file which includes information about the bat version 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 liquid dependency 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 examples folder for the updated code. The older "low level"
    API is still available (basically everything that is not in the root bat
    module), 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 of bat-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 by bat the application. When depending on bat as a library, downstream
    Cargo.toml should disable this feature to cut out inapplicable heavy dependencies:

    [dependencies]
    bat = { version = "0.14", default-features = false, features = ["regex-onig"] }

    Other optional functionality has also been put behind features: paging and git support.

  • Allow using the library with older syntect, see #896 and #898 (@dtolnay)

New syntaxes

Thanks

Many thanks to @keith-hall for all the help with various Sublime syntax problems!

Assets 14

@sharkdp sharkdp released this Mar 22, 2020

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!

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-syntax settings
    present.

    The option now works like this:

    --map-syntax <glob-pattern>:<syntax-name>

    For more information, see the --help text, the man page or the README.

    This new feature allows us to properly highlight files like:

    • /etc/profile
    • ~/.ssh/config
  • --highlight-line now 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_PATH can be used to place cached bat assets in a non-standard path, see #829 (@neuronull)

  • Support combination of multiple styles at the same time, see #857 (@aslpavel)

Bugfixes

Other

New syntaxes

New themes

Packaging

  • bat is now in the official Ubuntu and Debian repositories, see #323 and #705 (@MarcoFalke)
  • bat can 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.
Assets 14