ZedのTypeScript言語サーバーとしてtsrsを使う方法
TypeScriptコンパイラーをRustに移植したtsrsをZedのTypeScript言語サーバーで使う方法について解説します。
目次
tsrsとは?
tsrsはTypeScript 7をRustに移植したTypeScriptコンパイラーで、OxlintやOxfmtの開発元のVoidZeroとCloudflareが開発・公開しています。公式ブログによれば、tsrsはTypeScript 7.0と比較して最大8倍高速でメモリー使用量は70%少ないとのことです。
tsrsの開発チームとTypeScriptの開発チームは協力しており、tsrsで実施した最適化の一部をGo版の本家TypeScriptに取り入れているようです。
ZedのTypeScript言語サーバーとしてtsrsを使う方法
tsrsをZedのTypeScript言語サーバーとして使うには、Go版のTypeScriptを言語サーバーとして使えるようにするTypeScript Language Server拡張機能をインストールします。
インストールしたら、TypeScript Language Server拡張機能をTypeScriptの言語サーバーとして指定します。
{ "languages": { "TypeScript": { "language_servers": ["!vtsls", "!typescript-language-server", "typescript-ls", "..."] }, "TSX": { "language_servers": ["!vtsls", "!typescript-language-server", "typescript-ls", "..."] }, "JavaScript": { "language_servers": ["!vtsls", "!typescript-language-server", "typescript-ls", "..."] } }}次に、tsrsをシステムにグローバルインストールします。
npm install -g tsrsTypeScript Language Serverのバイナリーとしてtsrsを指定します。
{ "lsp": { "typescript-ls": { "binary": { "path": "path/to/tsrs", "arguments": ["--lsp", "--stdio"] } } }, "languages": { "TypeScript": { "language_servers": ["!vtsls", "!typescript-language-server", "typescript-ls", "..."] }, "TSX": { "language_servers": ["!vtsls", "!typescript-language-server", "typescript-ls", "..."] }, "JavaScript": { "language_servers": ["!vtsls", "!typescript-language-server", "typescript-ls", "..."] } }}miseでtsrsを管理する場合は、次のように指定します。
{ "lsp": { "typescript-ls": { "binary": { "path": "mise", "arguments": ["exec", "--", "tsrs", "--lsp", "--stdio"] } } }, "languages": { "TypeScript": { "language_servers": ["!vtsls", "!typescript-language-server", "typescript-ls", "..."] }, "TSX": { "language_servers": ["!vtsls", "!typescript-language-server", "typescript-ls", "..."] }, "JavaScript": { "language_servers": ["!vtsls", "!typescript-language-server", "typescript-ls", "..."] } }}これで、ZedのTypeScript言語サーバーとしてtsrsを使えるようになりました。
この記事の検証内容と情報源
検証環境
- OS:Windows 11
- Zed:バージョン1.28.1
- tsrs:バージョン0.23.0-ts7.1.0-beta
検証内容
WindowsとWSL環境でZedのTypeScript言語サーバーとして、miseで管理しているtsrsを指定して日常的にコーディングし、動作を確認しました。
最終検証日
参考リンク
記事をシェア
フォローして最新情報を入手
Googleの優先ソースに追加すると、このサイトの記事をGoogleで見つけやすくなります。また、ぜひXやRSSフィードもフォローしてください。
関連記事
-1.png&w=1080&q=75)
生まれた時から、母国語よりも先にJavaScriptを使っていました。ネットの海のどこにもいなくてどこにでもいます。
Webフロントエンドプログラマーとして、TypeScriptを用いたWebアプリやブラウザー拡張機能を制作。Xのシャドウバン検知ツール「Shadowban Scanner」やリンクカード復活ツール「Restore Link Card」を公開し、国内外のメディアで紹介されました。iGEM 2023ではJapan-UnitedチームのWikiを制作してGrand Prizeの獲得に貢献。ブログではXやSNSの最新ニュース、不具合の検証と対処法、フロントエンド開発の知見を発信しています。




![npmのパッケージの設定画面のスクリーンショット。[Trusted Publisher]セクションの[Select your publisher]に[GitHub Actions]と[GitLab CI/CD]の2つのボタンが表示されている](/_next/image/?url=%2Fapi%2Fmedia%2Ffile%2Fnpm-trusted-publishing-settings.png&w=3840&q=75)




![[写真リンクをコピー][写真をポスト]という項目が表示されたコンテキストメニューのスクリーンショット](/_next/image/?url=%2Fapi%2Fmedia%2Ffile%2Fx-web-image-context-menu.png&w=1080&q=75)
![Discordの設定画面のスクリーンショット。[データ&プライバシー]セクションの[発見対象チャンネルの私のメッセージ内容をウェブページに表示]が赤い枠線で強調されている](/_next/image/?url=%2Fapi%2Fmedia%2Ffile%2Fdiscord-message-visibility-setting.png&w=3840&q=75)