Open Source

Trino Monaco SQL Editor

面向 Trino 的 Monaco React SQL 编辑器组件,借助 ANTLR 语法分析与集群实时元数据,提供 IDE 级的 SQL 编辑体验。

MIT License · Open SourceGitHub 仓库

特点与优势

01

Trino 语言支持

通过 Monarch 分词器注册 trino 语言,内置源自 Trino 文档的关键字、函数与类型。

02

ANTLR 驱动的 SQL 智能

基于 TrinoSql 语法实时检测语法错误,并通过 antlr4-c3 按光标上下文给出补全建议。

03

集群实时联动

通过 SHOW 查询自动补全目录、模式、表和列,支持 TTL 缓存、去重与请求取消。

04

流畅的编辑体验

重量级解析在 Web Worker(Comlink)中运行,输入不卡顿,并提供明暗两套主题。

核心功能

以单个 React 组件提供 IDE 级 SQL 编辑所需的全部功能。

自动补全

内置关键字、函数与类型,并可对接异步元数据提供器。

上下文感知补全

contextAware 模式借助 antlr4-c3 分析光标位置,给出精准候选。

实时语法校验

ANTLR 解析器将语法错误即时标记在编辑器中。

编辑器操作

Ctrl/Cmd+Enter 执行查询,右键菜单 Explain,Shift+Alt+F 格式化。

元数据提供器

可接入自定义异步提供器,或使用 createTrinoMetadataProvider 直连 Trino 集群。

主题与布局

提供明/暗 Trino 主题及禁用小地图等适合 SQL 编辑的默认配置。

架构

Monaco 编辑层、ANTLR 语言智能、Worker 层与集群联动清晰分层。

编辑层
Monaco · Monarch
注册 trino 语言
分词器高亮
明/暗主题
SQL 友好默认布局
语言智能
ANTLR · antlr4-c3
TrinoSql.g4 语法
实时语法校验
上下文补全候选
支持 SELECT · DML · DDL
Worker 层
Web Worker · Comlink
主线程外解析
输入流畅不卡顿
contextAware 选项
错误标记同步
集群联动
Metadata Provider
基于 SHOW 查询
目录到列级补全
TTL 缓存与去重
请求取消
技术栈
TypeScriptReactMonaco EditorANTLR (antlr4ng)antlr4-c3Comlink

从 GitHub 开始

以 MIT 许可开源的 React 组件,示例与使用指南均在仓库中。