Rubyと筋肉とギターとわたし

筋トレが仕事です

【Vim】TypeScriptプラグイン周りでquickfixが重くなる

f:id:rdwbocungelt5:20200320131618p:plain

どうもてぃです。

皆さん日頃からvimvimしてますでしょうか?

今回直近で自社開発の別プロジェクトに参画することになったため、いい加減になってたvimのjsプラグインを整理することにしました。

まだまだ問題は山積みなんですが、その中でもLintが自動で効いて重くなる問題を先に解決することとしました。

現状

  • インサートモードから出ると自動でチェックが入る
  • チェック時に固まる
  • 切り取り時(x)にもチェックが入るので作業効率が悪い
  • quickfixが常動くのでファイルが見にくくなる

原因究明

まずはどのプラグインが原因なのか確認。

jsやjsxでは特にこの問題は発生してなかったので、typescript関連かなと。僕の場合、typescript-vimtsuquyomiしか入れてなかったためすぐに見つかりました。

原因はtsuquyomiの方でした。

quickfixを出ないようにする

最初にやった対処がこれです。

let g:tsuquyomi_disable_quickfix = 1

これを設定すれば、quickfixがそもそもでなくなります。

が、毎回:TsuGeterrするのは面倒くさい。マップしようかなともおもいましたが、保存時に自動で動くようにしたかった。

pull requestあった

有志の方が修正してました。マジ神。

github.com

vim8ならlet g:tsuquyomi_use_vimproc = 0、そうでなければ autocmd InsertLeave,TextChanged,BufWritePost *.ts,*.tsx call tsuquyomi#asyncGeterr()を設定すれば、非同期でチェックを行うので、画面が固まらなくなると。

ありがとうございます。感謝。

おわり

まだtsuquyomiでの補完も効かない問題が残ってます。

今回ので前よりは速くなったし固まらなくなったけど、ファイル修正途中で毎回動くと少しラグがな…と思ってますが、quickfixをdisableにするしかなくなるので一旦これで我慢です。

TypeScriptもっとがんばろうー。