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.
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
.tmLanguagefile, open the file in Sublime Text and convert it to a.sublime-syntaxfile via Tools -> Developer -> New Syntax from XXX.tmLanguage.... Save the new file in theassets/syntaxesfolder. -
Run the
create.shscript. It callsbat cache --buildto parse all available.sublime-syntaxfiles and serialize them to asyntaxes.binfile (in this folder). -
Re-compile
bat. At compilation time, thesyntaxes.binfile will be stored inside thebatbinary. -
If you send a pull request with your changes, please do not include the changed
syntaxes.binfile. 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.dartinclude.INI.sublime-syntax=> added.hgrc,hgrc, anddesktopfile types.Org mode.sublime-syntax=> removedtaskfile type.
Non-submodule additions
Assembly (x86_64)has been manually added from https://github.com/13xforever/x86-assembly-textmate-bundle due togit clonerecursion problemsNim.sublime-syntaxhas been added manually from https://github.com/getzola/zola/blob/master/sublime_syntaxes/Nim.sublime-syntax as there was no suitable Git repository for it. The original syntax seems to originate from https://github.com/Varriount/NimLimeRego.sublime-syntaxhas been added manually from https://github.com/open-policy-agent/opa/blob/master/misc/syntax/sublime/rego.sublime-syntax as it is not kept in a standalone repository. The file is generated from https://github.com/open-policy-agent/opa/blob/master/misc/syntax/textmate/Rego.tmLanguage