1
0
mirror of https://github.com/sharkdp/bat.git synced 2025-02-20 20:08:58 +00:00
bat/assets
sharkdp ecd862d9ff Feature: Highlight non-printable characters
Adds a new `-A`/`--show-all` option (in analogy to GNU Linux `cat`s option) that
highlights non-printable characters like space, tab or newline.

This works in two steps:
- **Preprocessing**: replace space by `•`, replace tab by `├──┤`, replace
newline by `␤`, etc.
- **Highlighting**: Use a newly written Sublime syntax to highlight
these special symbols.

Note: This feature is not technically a drop-in replacement for GNU `cat`s
`--show-all` but it has the same purpose.
2018-11-01 22:00:47 +01:00
..
2018-10-20 11:32:25 +02:00
2018-10-05 18:44:51 +02:00
2018-10-17 23:14:07 +02:00
2018-09-12 22:01:01 +02:00

Syntax Highlighting in bat

bat uses the syntect library to highlight source code. As a basis, syntect uses Sublime Text syntax definitions in the .sublime-syntax format.

In order to add new syntaxes to bat, follow these steps:

  1. Find a Sublime Text syntax for the given language, preferably in a separate Git repository which can be included as a submodule (under assets/syntaxes).

  2. If the Sublime Text syntax is only available as a .tmLanguage file, open the file in Sublime Text and convert it to a .sublime-syntax file via Tools -> Developer -> New Syntax from XXX.tmLanguage.... Save the new file in the assets/syntaxes folder.

  3. Run the create.sh script. It calls bat cache --init to parse all available .sublime-syntax files and serialize them to a syntaxes.bin file (in this folder).

  4. Re-compile bat. At compilation time, the syntaxes.bin file will be stored inside the bat binary.

Troubleshooting

Make sure that the local cache does not interfere with the internally stored syntaxes and themes (bat cache --clear).

Manual modifications

The following files have been manually modified after converting from a .tmLanguage file:

  • Dart.sublime-syntax => removed #regex.dart include.
  • INI.sublime-syntax => added .hgrc and hgrc file types.