mcpField
T
typescript-lsp

typescript-lsp

github.com/clickhouse開発33051 回インストール1 日前に更新
リポジトリ

typescript-lsp について

clickhouse-js ワークスペースで TypeScript 言語サーバーを使うためのスキルです。対話的なコード解析を行う開発者向けに、起動方法、設定検出、確認済みの LSP 機能を説明します。

主な機能

  1. 01stdio 経由で LSP を起動
  2. 02最寄りの tsconfig.json を自動選択
  3. 03ホバー情報と定義を取得
  4. 04参照とワークスペースシンボルを検索
  5. 05補完とプッシュ診断を提供

活用シーン

  1. 01推論されたシグネチャと JSDoc の確認
  2. 02ワークスペース間の定義への移動
  3. 03シンボルと参照の検索
  4. 04ファイル診断と補完の取得

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/clickhouse/clickhouse-js --skill typescript-lsp

インストール後、Claude Code で/typescript-lspを入力して読み込まれたか確認します。

詳細

clickhouse-js の TypeScript Language Server

typescript-language-server はルートの devDependency として宣言されているため、npm install(setup スキルを参照)後は npx から利用でき、ワークスペースローカルの typescript(6.x)コンパイラーを使用します。これは CI と完全に一致します。

このサーバー(6.x)には Node.js >= 22.22.2 が必要です。これはリポジトリの Node 20 の最小要件より新しいバージョンです。Node 20 では npm install の際に警告が表示されるだけですが、サーバーはサポートされません。

サーバーの起動

リポジトリのルートから実行します。

npx typescript-language-server --stdio

LSP(JSON-RPC、Content-Length でフレーム化)を stdio 経由で使用します。追加の設定は不要です。各 packages/* ワークスペース、tests/clickhouse-test-runner、examples/node、examples/web にはそれぞれ独自の tsconfig.json があり、サーバーは開いたファイルごとに最も近いものを自動的に選択します。

プロトコルの要点

  1. rootUri/workspaceFolders にリポジトリのルートを指定して initialize を送信し、その後 initialized 通知を送信します。
  2. 照会したいファイルすべてについて、ファイル全体のテキストを含む textDocument/didOpen を送信します(サーバーは依存関係を自動でディスクから読み取ります。開く必要があるのは、位置を照会するファイルだけです)。
  3. 位置は 0 始まりです(行と文字)。

検証済みの機能(typescript-language-server 5.x、TS 6.x)

リクエスト備考
textDocument/hover推論されたシグネチャ全体と JSDoc マークダウンを返します
textDocument/definitiondist/ ではなくソースを介して、ワークスペース間のパッケージを解決します
textDocument/references開いているファイルのプロジェクト内
workspace/symbol例:ClickHouseClient を検索すると、クラスと再エクスポートが見つかります
textDocument/completionコンテキストに応じたメンバー補完
診断プッシュのみ(textDocument/publishDiagnostics 通知。didOpen の約 1~3 秒後に送信)。プル方式の textDocument/diagnostic リクエストはサポートされていません(-32601)。代わりにプッシュ通知を待ちます。

ヒント

  • 環境に組み込みの LSP/コードインテリジェンスツールがある場合は、リポジトリのルートをワークスペースフォルダーとして、npx typescript-language-server --stdio を指定してください。
  • 単発のスクリプトによる照会では、Node からサーバーを起動し、Content-Length: <bytes>\r\n\r\n<json> でメッセージをフレーム化して、id でレスポンスを照合してください。
  • ワークスペース全体の型チェックには引き続き npm run build && npm run typecheck を使用します(先にビルドしてください。一部のワークスペースはコンパイル済みの dist/ 出力をインポートするためです)。LSP は対象を絞った対話的な照会用であり、CI と同等の検証用ではありません。

コメント