| Crates.io | syntect-assets |
| lib.rs | syntect-assets |
| version | 0.23.6 |
| created_at | 2023-08-16 11:12:35.196128+00 |
| updated_at | 2023-08-22 07:54:08.356557+00 |
| description | [syntect](https://github.com/trishume/syntect) syntax and theme assets from [bat](https://github.com/sharkdp/bat). |
| homepage | https://github.com/ttys3/syntect-assets |
| repository | https://github.com/ttys3/syntect-assets |
| max_upload_size | |
| id | 945707 |
| size | 1,060,740 |
syntect syntax and theme assets from bat
bat's syntect syntax is updated and improved compared to syntect builtin ones
/// A simple program that prints its own source code using the syntect-assets library
use syntect::parsing::SyntaxSet;
use syntect::highlighting::{ThemeSet, Style};
use syntect::util::as_24_bit_terminal_escaped;
use syntect::easy::HighlightFile;
use std::io::BufRead;
use syntect_assets::assets::HighlightingAssets;
fn main() {
let assets = HighlightingAssets::from_binary();
let ss = assets.get_syntax_set().unwrap();
let theme = assets.get_theme("OneHalfDark");
let mut highlighter = HighlightFile::new(file!(), ss, theme).unwrap();
let mut line = String::new();
while highlighter.reader.read_line(&mut line).unwrap() > 0 {
{
let regions: Vec<(Style, &str)> = highlighter.highlight_lines.highlight_line(&line, &ss).unwrap();
print!("{}", as_24_bit_terminal_escaped(®ions[..], true));
} // until NLL this scope is needed so we can clear the buffer after
line.clear(); // read_line appends so we need to clear between lines
}
}
Themes:
- 1337
- Coldark-Cold
- Coldark-Dark
- DarkNeon
- Dracula
- GitHub
- Monokai Extended
- Monokai Extended Bright
- Monokai Extended Light
- Monokai Extended Origin
- Nord
- OneHalfDark
- OneHalfLight
- Solarized (dark)
- Solarized (light)
- Sublime Snazzy
- TwoDark
- Visual Studio Dark+
- ansi
- base16
- base16-256
- gruvbox-dark
- gruvbox-light
- zenburn
see examples/list_syntaxes_and_themes.rs example
you can run the example to get the list of supported syntaxes and themes
cargo run --example list_syntaxes_and_themes
the latest syntax fixed many bugs, but we can not update to that.
for example, fenced golang now support both go and golang, prev just support golang, but most people use go for that.
the latest version fixed the issue: https://github.com/sublimehq/Packages/blob/master/Markdown/Markdown.sublime-syntax
some issues:
syntect does not support sublime-syntax from Sublime Text Build 4075 see https://github.com/trishume/syntect/issues/323
sublimehq packages: Missing mandatory key in YAML file: match https://github.com/trishume/syntect/issues/461
zola: Investigate tree-sitter to replace syntect
Our syntect syntaxes are stuck on old versions of the grammars because of new features in the Sublime grammar format not supported by Syntect.
https://github.com/microsoft/vscode-textmate
https://github.com/microsoft/vscode-markdown-tm-grammar
Sublime Text
Syntax Definitions https://www.sublimetext.com/docs/syntax.html
Scope Naming https://www.sublimetext.com/docs/scope_naming.html
Themes https://www.sublimetext.com/docs/themes.html
Color Schemes https://www.sublimetext.com/docs/color_schemes.html
TextMate language grammar definition https://macromates.com/manual/en/language_grammars