Open Source
Trino Monaco SQL Editor
面向 Trino 的 Monaco React SQL 编辑器组件,借助 ANTLR 语法分析与集群实时元数据,提供 IDE 级的 SQL 编辑体验。
MIT License · Open SourceGitHub 仓库
浏览器编辑与 Trino 执行
将 Monaco 编辑、Worker 语法分析、元数据查询以及宿主应用接入的查询执行分为不同职责。

- 1.在 React 中编辑 SQL
- TrinoEditor 为 Monaco 和 Monarch 注册 Trino 语言、关键字及主题,并连接文档、光标和操作回调。
- 2.在 Worker 中分析语法
- 启用 contextAware 后,Comlink Web Worker 使用 ANTLR 与 antlr4-c3 分析光标上下文、别名和语法错误位置。
- 3.查询实时元数据
- 主线程提供器通过 SHOW 查询获取目录、模式、表和列。默认缓存 5 分钟,并将元数据合并到补全候选。
- 4.通过宿主执行
- 接入 onRunQuery 的运行器调用 Trino statement API,POST 后通过 GET 跟随 nextUri。返回的数据页由宿主结果 UI 展示。
contextAware 默认为 false。生产后端、认证及结果 UI 由宿主应用集成。浏览器 Worker 分析 SQL,Trino 执行查询。
查看GitHub文档与代码从补全到查询结果
为输入的别名查找列候选,检查语法,再通过明确的执行操作获取结果页。

- 1.识别光标上下文
- 对于 SELECT o. FROM iceberg.sales.orders o 等语句,Worker 识别 o. 处的列上下文,并解析别名 o 对应的表。
- 2.获取对应列
- 复用缓存,或通过 SHOW COLUMNS 获取 orders 表的列名与类型。连接遵循宿主的代理和认证配置。
- 3.显示候选与语法错误
- Monaco 合并元数据和基于语法的候选。输入防抖 250ms 后执行语法校验;这不代表语义正确性或执行成功验证。
- 4.执行并接收结果页
- Ctrl/Cmd+Enter 将选中 SQL 或整个文档传给宿主。运行器通过 POST 和 nextUri GET 获取结果,并根据 AbortSignal 尝试取消。
用于补全的 SHOW 查询与用户 SQL 执行相互独立。Run 和 Explain 使用宿主回调;取消时尝试向活动查询 URI 发送 DELETE。
查看GitHub文档与代码编辑功能与集成职责
使用内置编辑工具、启用上下文分析,并通过应用连接元数据与查询执行。

- 1.默认编辑
- 使用高亮、补全、格式化和明暗主题。
- 2.SQL 语言支持
- 启用 Worker 文法分析和上下文候选项。
- 3.元数据
- 连接异步提供器与带缓存的 SHOW 查询。
- 4.执行
- 连接 Run、Explain 回调并在宿主应用显示结果。
contextAware 需显式启用。Worker 解析 SQL,Trino 执行查询。生产后端和结果界面由应用负责。
查看GitHub文档与代码