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 後に nextUri を GET でたどります。結果ページはホストの 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 が選択範囲または全文をホストに渡します。ランナーは POST と nextUri GET で結果を取得し、AbortSignal でキャンセルを試みます。
補完用 SHOW クエリとユーザー SQL の実行は別です。Run・Explain はホストのコールバックを使用し、キャンセル時は実行中 URI への DELETE を試みます。
GitHubの文書・コードを見る編集機能と連携の構成
標準編集、文脈解析、アプリ経由のメタデータ取得と実行を組み合わせます。

- 1.標準編集
- 強調表示、補完、整形、明暗テーマを使います。
- 2.SQL 言語支援
- Worker での文法解析と文脈候補を有効にします。
- 3.メタデータ
- 非同期プロバイダーとキャッシュ付き SHOW 照会を接続します。
- 4.実行
- Run、Explain のコールバックとホスト結果画面を接続します。
contextAware は任意です。Worker は解析、Trino は実行を担当します。本番バックエンドと結果画面はアプリ側で構成します。
GitHubの文書・コードを見る