ろぼいんブログ

Zedでtsgo(ネイティブ版TypeScript)を使う方法

「The editor for what's next」というキャッチコピーが表示されたZedの公式サイトのスクリーンショット
画像:Zed公式サイト

今年3月にMicrosoftはTypeScriptコンパイラーをGoに移植すると発表しており、数日前には主要な機能の移植を完了したと発表しています

GoベースのTypeScriptコンパイラーはTypeScript 7としてリリースされる予定で、現在は@typescript/native-previewをインストールすることで、従来のtscコマンド代わってtsgoコマンドとして利用できます。

広告

tsgoを使うことでプロジェクトのビルドや型チェックが高速になるだけでなく、エディターの入力補完などに利用するとプロジェクトのロードが高速になります。

VS Codeでは、Microsoft公式の拡張機能をインストールして設定を変更することで、エディターのコード補完やエラー表示などにtsgoを利用できるようになり、プロジェクトのロードが高速になります。

https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.native-preview

Zedでは、Zed公式の拡張機能を通じてtsgoを利用できます。まずは、tsgoの拡張機能をインストールします。

拡張機能をインストールしただけだと、従来のTypeScriptベースのTypeScriptとtsgoの両方が言語サーバーとして起動してしまうため、次のように設定を変更します。

settings.jcon
{
// ...既存の設定
"languages": {
"TypeScript": {
"language_servers": ["!vtsls", "!typescript-language-server", "..."]
},
"TSX": {
"language_servers": ["!vtsls", "!typescript-language-server", "..."]
},
"JavaScript": {
"language_servers": ["!vtsls", "!typescript-language-server", "..."]
}
}
}

公式ドキュメントでは"language_servers": ["tsgo"]のようにする設定が紹介されていますが、それだとESLintやcspellなどのtsgo以外の言語サーバーも無効化されてしまいます。

広告

そのため、tsgoと機能の重複するvtslstypescript-language-server!を付けて無効化し、登録されているほかの言語サーバーの設定を"..."で維持するようにしています。

こうすることで、tsgoと機能の重複する言語サーバーを無効化しつつ、ESLintなどの言語サーバーはそのままにできます。

余談ですが、Zedはデフォルトでvtslstypescript-language-serverという機能の重複する2つの言語サーバーを起動しているようですね。

個人的にノートパソコンでZedの動作が全体的に重いと感じていたのはこれのせいだったようです。

今回の設定変更でノートパソコンでもZedの動作が軽量になりました。

広告

記事をシェア

Xに共有するBlueskyに共有するMisskeyに共有するLINEに共有するThreadsに共有する

フォローして最新情報を入手

Googleの優先ソースに追加すると、このサイトの記事をGoogleで見つけやすくなります。また、ぜひXやRSSフィードもフォローしてください。

Googleの優先ソースとして追加するGoogleの優先ソースとして追加するXのロゴ
広告
著者のアイコン画像

生まれた時から、母国語よりも先にJavaScriptを使っていました。ネットの海のどこにもいなくてどこにでもいます。

Webフロントエンドプログラマーとして、TypeScriptを用いたWebアプリやブラウザー拡張機能を制作。Xのシャドウバン検知ツール「Shadowban Scanner」やリンクカード復活ツール「Restore Link Card」を公開し、国内外のメディアで紹介されました。iGEM 2023ではJapan-UnitedチームのWikiを制作してGrand Prizeの獲得に貢献。ブログではXやSNSの最新ニュース、不具合の検証と対処法、フロントエンド開発の知見を発信しています。