You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bat/assets
sharkdp 6b86ab5cd0 Move syntax to 02_Extra folder 4 years ago
..
completions Update fish completions to use parameterized names 5 years ago
manual Update documentation 4 years ago
patches Patch Markdown syntax 4 years ago
syntaxes Move syntax to 02_Extra folder 4 years ago
themes Bump assets/themes/onehalf from `fdcbffe` to `970abdf` 4 years ago
.gitattributes Add assets/.gitattributes 6 years ago
.ignore Add .ignore files to avoid searching asset folders 6 years ago
README.md Add syntax highlighting for SML 4 years ago
create.sh Add patch for C# syntax 4 years ago
syntaxes.bin Update syntaxes and themes 4 years ago
theme_preview.rs Small style changes to --list-themes 6 years ago
themes.bin Update syntaxes and themes 4 years ago

README.md

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.
  • SML.sublime_syntax => removed ml file type.

Non-submodule additions