2 个版本
0.23.6 | 2023 年 8 月 22 日 |
---|---|
0.23.5 | 2023 年 8 月 16 日 |
#53 in 渲染
1MB
687 行
syntect-assets
为什么?
bat
的 syntect 语法与 syntect 内置语法相比进行了更新和改进
用法
/// 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
支持的语法
见 examples/list_syntaxes_and_themes.rs 示例
你可以运行该示例以获取支持的语法和主题列表
cargo run --example list_syntaxes_and_themes
故障排除
最新的语法修复了许多错误,但我们无法更新到那个版本。
例如,现在支持了既支持 go
也支持 golang
的 fence golang,之前只支持 golang
,但大多数人使用 go
。
最新版本解决了以下问题:https://github.com/sublimehq/Packages/blob/master/Markdown/Markdown.sublime-syntax
一些问题
-
syntect 不支持 Sublime Text Build 4075 的 sublime-syntax,请参见 https://github.com/trishume/syntect/issues/323
-
sublimehq 软件包:YAML 文件中缺少必要的键:match https://github.com/trishume/syntect/issues/461
-
zola:调查使用 tree-sitter 替代 syntect
由于 Sublime 语法格式的新功能不受 Syntect 支持,我们的 syntect 语法卡在旧的语法版本上。
相关
https://github.com/microsoft/vscode-textmate
https://github.com/microsoft/vscode-markdown-tm-grammar
Sublime Text
语法定义 https://text.sublime.net.cn/docs/syntax.html
作用域命名 https://text.sublime.net.cn/docs/scope_naming.html
主题 https://text.sublime.net.cn/docs/themes.html
颜色方案 https://text.sublime.net.cn/docs/color_schemes.html
TextMate语言语法定义 https://macromates.com/manual/en/language_grammars
依赖项
~7–17MB
~221K SLoC