
typescript-lsp
✓ Official★ 321by clickhouse · part of clickhouse/clickhouse-js
Use the TypeScript language server (`typescript-language-server`) for precise code intelligence in the `clickhouse-js` repository: go-to-definition, find references, hover (type signatures and JSDoc, including `@deprecated` info), workspace-wide symbol search, completions, and per-file type diagnostics. Prefer this over grep when you need to resolve a symbol's actual definition, find all usages of an exported API, or inspect inferred types across the `packages/*` workspaces. The server is preins
This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.
TypeScript Language Server in clickhouse-js
typescript-language-server is declared as a root devDependency, so after
npm install (see the setup skill) it is available via npx and uses the
workspace-local typescript (6.x) compiler, matching CI exactly.
Starting the server
From the repo root:
npx typescript-language-server --stdioIt speaks LSP (JSON-RPC, Content-Length-framed) over stdio. There is no
extra configuration: each packages/* workspace, tests/clickhouse-test-runner,
examples/node, and examples/web has its own tsconfig.json, and the
server picks the nearest one per opened file automatically.
Protocol essentials
- Send
initializewithrootUri/workspaceFolderspointing at the repo root, then theinitializednotification. - Send
textDocument/didOpenwith the full file text for every file you want to query (the server reads dependencies from disk on its own; only files you query positions in need to be opened). - Positions are 0-based (line and character).
Verified capabilities (typescript-language-server 5.x, TS 6.x)
| Request | Notes |
|---|---|
textDocument/hover | Returns the full inferred signature + JSDoc markdown |
textDocument/definition | Resolves across workspace packages via source, not dist/ |
textDocument/references | Within the opened file's project |
workspace/symbol | e.g. query ClickHouseClient finds class + re-exports |
textDocument/completion | Context-aware member completions |
| Diagnostics | Push only (textDocument/publishDiagnostics notifications, sent ~1–3s after didOpen). The pull textDocument/diagnostic request is not supported (-32601) — wait for the push notification instead. |
Tips
- If your environment provides built-in LSP/code-intelligence tooling, point
it at
npx typescript-language-server --stdiowith the repo root as the workspace folder. - For one-off scripted queries, spawn the server from Node, frame messages
with
Content-Length: <bytes>\r\n\r\n<json>, and match responses byid. - A full workspace typecheck is still
npm run build && npm run typecheck(build first — some workspaces import compileddist/outputs); the LSP is for targeted, interactive queries, not for CI-equivalent validation.
npx skills add https://github.com/clickhouse/clickhouse-js --skill typescript-lspRun this in your project — your agent picks the skill up automatically.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under Apache-2.0— you can use, modify, and redistribute it under that license's terms.
View the full license file on GitHub →