bat/assets
Mitchell Kember f59d00d4c7 Fix base16, and combine 00 and 0f alpha encodings
This changes the base16 theme back from #RRGGBB0f to #RRGGBB00,
reverting part of #934. That PR used the 0f encoding to produce ANSI
escape sequences 30-37 and 40-47 rather than 38;5 and 48;5 which require
256-color support. Unfortunately, it resulted in base16 using the wrong
colors becuase ansi_term does not support the bright variants (90-97 and
100-107) so it simply mapped them to the non-bright colors.

This PR makes combines the 00 and 0f alpha encodings into 00, and makes
them use the Color enum for the first 8 colors and Fixed otherwise. This
means the ansi-light and ansi-dark themes will work on terminals without
256-color support, and base16 will render bright colors correctly.
2020-05-11 19:29:19 +02:00
..
completions Update fish completions to use parameterized names 2019-09-27 12:13:55 -07:00
manual Update documentation 2020-03-22 11:02:51 +01:00
patches Patch Rust syntax file 2020-04-21 13:45:26 +02:00
syntaxes Properly add QML submodule 2020-05-01 10:24:19 +02:00
themes Fix base16, and combine 00 and 0f alpha encodings 2020-05-11 19:29:19 +02:00
.gitattributes Add assets/.gitattributes 2018-11-11 14:50:59 +01:00
.ignore Add .ignore files to avoid searching asset folders 2018-05-25 17:44:50 +02:00
create.sh Add patch for C# syntax 2020-04-11 23:55:27 +02:00
README.md Add OPA Rego syntax 2020-03-27 07:33:07 +01:00
syntaxes.bin Patch Rust syntax file 2020-04-21 13:45:26 +02:00
theme_preview.rs Small style changes to --list-themes 2018-08-28 20:24:13 +02:00
themes.bin Update cached verison of themes 2020-04-25 13:08:30 +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 --build 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.

  5. If you send a pull request with your changes, please do not include the changed syntaxes.bin file. A new binary cache file will be created once before every new release of bat.

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, hgrc, and desktop file types.
  • Org mode.sublime-syntax => removed task file type.

Non-submodule additions