はじめに
TypeScript 7から、tscに--lspというオプションが追加され、これまで別パッケージだったtypescript-language-serverを使わなくてもlanguage serverとして動くようになったようです。
Neovimの設定をこれまでのtypescript-language-server(nvim-lspconfigのts_ls)からtscに変えたのでまとめます。
TypeScript 7でtsc --lspが使えるようになったらしい
TypeScript 7は2026-07-08にリリースされた、Goで書き直されたネイティブコンパイラです。
最近、新たなリポジトリを作って開発する際にTypeScript 7を使っていたのですが、私のNeovimの環境でLSPが正しく動かなくなっていました。
(記事執筆時に再現をしようとしたんですが、再現できませんでした...)
調べてみると、どうやらTypeScript 7からはtscに--lspオプションが追加され、これまでのtypescript-language-serverは不要になっているようです。
- https://github.com/neovim/nvim-lspconfig/issues/4467
- https://github.com/Yeachan-Heo/oh-my-claudecode/issues/3403
公式のドキュメントやtsc --helpには--lspのオプションの記載を見つけられず、現在はまだ開発中の可能性があります。
nvim-lspconfigでtsc --lsp --stdioを使うように設定を変える
nvim-lspconfig側にtsc --lsp --stdioを使うようにするlsp/tsc.luaが追加されています。
vim.lsp.enable()に渡すサーバー名のリストで、ts_lsをtscに置き換えるだけでOKです。
vim.lsp.enable({
- "ts_ls",
+ "tsc",
-- 略...
})
さいごに
Go製になったことで高速化されたとのことなので、今後の開発でどの程度変わっているのかを体感していければと思います。
