Herb:强大且无缝的 HTML 感知 ERB 解析与工具链
Herb 是一个强大的 HTML 感知 ERB 解析与工具链,旨在提升开发者工具的智能化。它基于 Ruby 3.4 的 Prism 解析器构建,具备容错、速度快、空格感知、LSP 就绪等特性,能精确跟踪位置信息。Herb 支持 Ruby、JavaScript/TypeScript 等语言,并计划扩展对更多模板语言的支持。它能智能识别 HTML 结构,提供更精确的解析结果,提升开发效率。
Herb
强大且无缝的 HTML 感知 ERB 解析与工具链。
下一代 HTML+ERB 解析,为更智能的开发者工具和更多功能而生。
Documentation Playground GitHub
🧩
HTML-aware (HTML 感知)
智能地识别和导航 ERB 模板中的 HTML 结构,确保在交错的标记和 Ruby 代码中进行精确解析。
💎
Built on Prism (基于 Prism 构建)
由 Prism 提供支持,Prism 是 Ruby 3.4 的新的官方默认解析器。 Prism 旨在容错,并已被包括 CRuby、JRuby、TruffleRuby 在内的主要 Ruby 运行时采用。
🚑
Error-Tolerant (容错)
旨在优雅地处理错误,即使遇到语法错误也能提供准确的结果。
⚡
Engineered for Speed (为速度而设计)
解析输入的速度足够快,可以在每次击键时更新,从而确保文本编辑器和其他工具中的实时响应。
📏
Whitespace-Aware (空格感知)
在解析结果中准确地保留空格和格式。
🔌
LSP-Ready (LSP 就绪)
与 Language Server Protocols (LSP) 无缝协作,可在现代编辑器中获得更好的体验。
🎯
Precise Position Tracking (精确定位跟踪)
跟踪精确的位置,精确到每个节点和 token 的单个字符偏移量,从而实现精确的调试、注释和诊断。
🌎
Works Across Languages (跨语言支持)
Ruby、JavaScript/TypeScript 和其他高级编程语言的本地绑定。
🏗️
Expanding Template Language Support (扩展模板语言支持)
未来的更新将通过统一的解析器和语法树架构扩展到 ERB 之外,该架构在不同的模板语言中保持一致的 API。
Released under the MIT License. Copyright © 2024 Marco Roth and the Herb Contributors.