用途:这是一份面向 Biome 代码库开发者的通用参考,用于规避常见错误、理解 Biome 特有模式(AST、解析器、分析器、格式化器),在遇到不熟悉的 API 时提供指引。使用前提是具备基本 Rust 经验、了解 Biome 架构并已配置开发环境。
主要能力与要点: 处理 AST 与语法节点时,建议先用 parser crate 的 quick_test 查看结构,不要为此构建完整 Biome 二进制;需同时检查通用写法与具体变体类型(如 Vue 既有 VueDirective 也有 VueV*ShorthandDirective);把 CST 导航逻辑抽成返回 Option<T> 或 SyntaxResult<T> 的辅助函数,而非在调用方散布提前返回。快速检查示例运行命令:just qt biome_html_parser。
字符串与文本:从带引号字符串取内容用 inner_string_text()(去引号且无分配);需要整段 token 文本去掉首尾空白用 text_trimmed();不要对 SyntaxToken 调用 .text()(含 trivia),也不要手动切片去引号。拆分字符串词时避免每词分配 String,应存整个 token 的 TokenText 加 token 相对 TextRange,TokenText::clone() 仅增加引用计数。
嵌入语言与框架差异:Vue 指令用引号字符串,Svelte 用花括号表达式,需按框架选择对应提取方法与 EmbeddingKind,并正确计算偏移。
其他约定:用中间 let 绑定规避借用检查下的临时值问题;用 let 链合并嵌套 if let;提交前运行 just l 检查 clippy;类型在文件顶部导入而不内联 crate 路径,可推断的类型不加注解;内部 biome_* 的 [dev-dependencies] 必须写 path = "../biome_<name>" 而非 workspace = true;不支持旧版/废弃语法前先征询用户,且不要无证据宣称某写法“广泛使用”;测试枚举变体需覆盖多种类型,嵌入语言用 CLI 测试而非 analyzer 包;Markdown 表格分隔符两侧要留空格 | --- | 以通过 markdownlint-cli2。
限制:资料为开发规范类参考,未提供收费标准、支持平台或效果数据;注释与 rustdoc 风格、测试命令与代码生成细节分别见 doc-comments 与 testing-codegen 技能。