f59d00d4c7
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. |
||
---|---|---|
.. | ||
completions | ||
manual | ||
patches | ||
syntaxes | ||
themes | ||
.gitattributes | ||
.ignore | ||
create.sh | ||
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.Org mode.sublime-syntax
=> removedtask
file type.
Non-submodule additions
Assembly (x86_64)
has been manually added from https://github.com/13xforever/x86-assembly-textmate-bundle due togit clone
recursion problemsNim.sublime-syntax
has 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-syntax
has 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