VSCodeのv1.90.0から、大量のtsxファイルを含むReactの開発環境でgit checkoutなどの一度に大きくワークツリーを変更するコマンドを実行すると、ターミナルの入力やエディタの保存などが反映されない不具合が続いていた。
対処法
setting.jsonの、typescript.tsserver.experimental.useVsCodeWatcher
を false
に変更する
{
"typescript.tsserver.experimental.useVsCodeWatcher": false,
}
発生タイミング
https://github.com/microsoft/vscode/commit/2188b46e88231fb80a67d8790ea6906796cc31d1
このコミットで useVsCodeWatcher
が experimental から削除されると同時にデフォルト値が true
になっていることもわかる。
このタイミングは、この不具合が起こり始めたバージョン v1.90.0とも一致する
余談 (WSL での VSCodeビルド方法)
ググっても解決策がよくわからなかったので、VSCodeのソースをgithubからクローンしてきて、git bisectでこの変更を見つけた。その時の備忘録
環境構築
あまり環境を汚したくなかったので、新たにWSL Ubuntu-22.04をインストールしてから開始した。
インストールするものはここに書いてあるが、現時点ではこんなコマンド (Linuxのところを参照)
https://github.com/microsoft/vscode/wiki/How-to-Contribute#prerequisites
sudo apt-get update
sudo apt-get install build-essential g++ libx11-dev libxkbfile-dev libsecret-1-dev libkrb5-dev python-is-python3
sudo apt-get install make
もしかしたらこっちもやったほうがいいかも
sudo apt install python3 python-is-python3 libsecret-1-dev libxss1 libx11-dev libxkbfile-dev libasound2 libgtk-3-0 libgdk-pixbuf2.0-0 libnss3 libxtst6 libxi6 libxdamage1 libxcursor1 libxcomposite1 libx11-xcb1 libgbm1
ビルドと実行
最初に以下2つのコマンドを別々に走らせてビルドする
yarn watch
yarn watch-web
次にcode-serverを起動する
./scripts/code-server.sh --connection-token dev-token --port 8080
そしたらブラウザから、localhost:8080/?tkn=dev-token にアクセスすることでWeb版のVSCodeが使える