@dskripchenko/语法
用于编程语言、数据格式和文件的语法突出显示 环绕代码——与 无运行时间依赖关系 财务报告和审定财务报表 没有DOM字符串 中, HTML(或令牌)出自:在浏览器中,在服务器侧渲染中,在 节点脚本.
import { foldRanges, highlight, highlightLines, IncrementalHighlighter, languageOf, LineHighlighter, logEntries, THEME_CSS, validate } from '@dskripchenko/syntax'
const language = languageOf('server.rs') ?? 'text' // by name, extension or `#!` line
element.innerHTML = highlight(code, language) // <span class="sx-keyword">fn</span> …
// Line by line: for line numbers, or for drawing only the lines in view.
const lines = highlightLines(code, language)
// The colours: CSS custom properties, light and dark.
style.textContent = THEME_CSS
// What is wrong with a data file, and what can be folded.
validate('{"a": 1,}', 'json') // [{ line: 1, column: 9, message: 'expected a string key', severity: 'error' }]
foldRanges(code, language) // [{ start: 3, end: 10 }, …]
// A 100 MB log: only the lines in view are highlighted.
new LineHighlighter(text, 'log').html(1000, 1040)
// Text being edited: after an edit, tokenized again only until the state is back as it was.
const h = new IncrementalHighlighter(lines, language) // lines: { lineCount, lineText(i) }
h.edit(10, 12, 15) // lines 10–12 are now 10–15
h.tokens(0, 40)
logEntries(text) // [{ start: 2, end: 9, level: 'error' }, …]
编程语言 : JavaScript, TypeScript, Python, Go, Rust, Java, , , , , , , , Kotlin, C#, Swift, C, C++, PHP, Ruby, Lua, 壳牌, PowerShell, SQL.
格式和围绕代码的文件 : JSON(附评论,JSON线路),
YAML, XML( SVG, plists, project 文件), HTML( 及其脚本和样式),,
CSS(SCSS, 减), TOML, INI, .env, CSV/TSV, LaTeX, Markdown (栅栏区块位于
他们的语言,TeX数学, ==highlights==),diff,日志(级别,时间,堆栈痕迹),多克文件,Make文件,
图QL,协议缓冲,HTTP.
验证 和 JSON 的行、 列和信件( 收缩, 有
注释, JSON 线条), YAML, XML, TOML, CSV/TSV, INI 和 .env· ; 折叠
由括号、标记、缩进或标题; 大文件 突出显示a
一次窗口; 正在编辑的文本 仅以
编辑修改; 日志 读取为与其级别相关的条目.
它的承诺
- 文字如实回向. 信使的文本加入 提供了输入, 字节的字节, 不管输入是什么.
- 线性时间. 没有结束,没有巢穴,任何模式都无法回溯 无约束:测试套房投放病理输入(千人) 引用,鞭打,开括号)每种语言. 在真实的代码上运行 约20 MB/s.
- 逃出输出.
highlight()避开文本的每块; HTML 在 代码显示为文本. - 小一点. 一个大约32 KB gziped (在您的捆绑器缩小前) 模块 包括每种语言和检查器.
对于代码,它是一个亮点,而不是一个编译器:它读取代码的形状 ——文字,字符串,评论,数字,名字——足够读取,以及 中不报告语法错误; 数据格式被验证.
文档
| 开始:API、语言、主题、自己的语法 | 内 | 吕 | 页:1 | 日语 |
安装
npm install @dskripchenko/syntax