27.5KB 语言无关 WebGPU 语法高亮器

Hacker News Top 工具

摘要

gpu-lexer 是一种基于 WebGPU 的语言无关语法高亮器,利用微型 AI 模型标注代码部分,无需预定义语法,提供新颖且注重性能的传统高亮器替代方案。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/09/09 03:50

# 27.5KB 语言无关的 WebGPU 语法高亮器 来源:https://gpu-lexer.vercel.app/ ``` import { highlight } from 'gpu-lexer' const spans = await highlight('源代码') // { // type: 'plain' | 'comment' | 'string' | 'number' | 'keyword' | 'type' | 'function' | 'constant' | 'operator' // start: number // end: number // }[] ``` gpu\-lexer 将源代码拆分为简单部分——单词、空格、换行符和符号。随后,一个微型 WebGPU 模型结合局部与整个文件的上下文信息,为每个部分打上标签。其设计目标是适用于任何语言:它无需选择特定语法,而是根据上下文猜测每个部分的类型,即使在训练期间从未见过该语言或语法。相邻的标签会被合并,最终返回给你的代码作为高亮显示范围。 这是一个实验性项目,并非等同于基于语法的高亮器。对于未参与训练的数据集,**当前模型的令牌标签与 Shiki 有 12\.57% 的差异**。此指标衡量的是与 Shiki 的一致性,而非客观正确性;对于未见过的语言或现实世界的代码,差异可能会更大。 **高亮 10× three\.min\.js 性能** 预热后浏览器运行时间 · 数值越低越好 测试于 2026 年 9 月 8 日,预热一次后的单次浏览器运行。输入是十个拼接的 three\.min\.js 文件 (https://unpkg.com/[email protected]/build/three.min.js)(共 5\.56M 字符)。测试环境:MacBook Pro,Apple M4 Pro,20 核 GPU,24GB 内存,macOS 26\.6\.2,Chrome 152。每个引擎在专用 worker 中运行;DOM 渲染被排除。gpu\-lexer 和 Shiki 返回令牌数据,Starry Night 返回 HAST 树,而 Sugar High、Prism\.js 和 Highlight\.js 返回高亮后的 HTML。版本:Sugar High 2\.3\.1,Prism\.js 1\.30\.0,Highlight\.js 11\.12\.0,Starry Night 3\.11\.0,Shiki 4\.4\.3。 **加载的库大小** 运行时 + 所选语言覆盖范围 · 数值越低越好 于 2026 年 9 月 8 日测量,经压缩(Brotli)和精简的浏览器包。主要 Web 语言包括 javascript、typescript、css、html、json 和 markdown。gpu\-lexer 对所有语言使用同一个包。Starry Night 的总大小包含其 Oniguruma WASM 负载。 **Top\-25 加权正确度** 按流行度加权的与 Shiki 的一致性 · 数值越高越好 Shiki 作为 100% 的参考基准。每个库的令牌名称被映射到相同的九个类别:plain、comment、string、number、keyword、type、function、constant 和 operator。得分基于 GitHub Innovation Graph (https://innovationgraph.github.com/global-metrics/programming-languages) 中 2026 年第一季度排名前 25 的语言,在 1,069 个保留文件中,根据每种语言的推送者数量进行加权,比较非空白源代码部分。不支持的语言得分为零;语料库大小不影响权重。 \[ 在线演示 \] 支持 75 种语言 react\.development\.js 0 字节

相似文章

声明式WebGPU与S表达式

Lobsters Hottest

Pngine是一个用于WebGPU的声明式格式与运行时,它使用S表达式来简化WebGPU配置的声明与验证,支持跨平台共享,并能导出为HTML或嵌入运行时的PNG等格式。

WebGPU实战教程

Hacker News Top

一本免费的互动书籍,教授使用JavaScript和WebGPU进行图形编程,涵盖从基础到高级主题,如GPU计算和高斯泼溅(Gaussian splatting)。