.. | ||
syntaxes | ||
themes | ||
.gitattributes | ||
.ignore | ||
create.sh | ||
JavaDoc.sublime-syntax.patch | ||
README.md | ||
syntaxes.bin | ||
theme_preview.rs | ||
themes.bin |
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:
-
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
). -
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 theassets/syntaxes
folder. -
Run the
create.sh
script. It callsbat cache --build
to parse all available.sublime-syntax
files and serialize them to asyntaxes.bin
file (in this folder). -
Re-compile
bat
. At compilation time, thesyntaxes.bin
file will be stored inside thebat
binary. -
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 ofbat
.
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
, anddesktop
file types.
Non-submodule additions
Assembly (x86_64)
has been manually added from https://github.com/13xforever/x86-assembly-textmate-bundle due togit clone
recursion problems