Emacsのlsp-modeが遅いときはlsp-doctorを見てみるといい

emacs-lsp.github.io

タイトルと↑のリンクでFAなのだけれど、EmacsのLSPクライアントであるlsp-modeで補完などの動作が遅いなと感じたときは M-x lsp-doctor とやると遅い原因を列挙してくれる。

Emacsのデフォルト設定値ではlsp-modeの利用に最適ではない場合があるのは、言われてみればその通りなのだけど完全に失念していた。 lsp-mode側でよしなに書き換えてしまってもいいのに……と思ったけど、それをやるのは流石に思想の違いがありそう。

自分の場合はGCが発生するメモリの閾値gc-cons-threshold と、一度の読み取り操作でサブプロセスから何バイト読み取るかの read-process-output-max の値を調節すると、補完候補が出る速度が体感でわかるほど早くなった。 元々候補が出るのに一瞬ひっかかるなと感じる程だったので、明らかに体験が良くなった。

lsp-mode 遅いなと感じている時は試してみるとよさそう。

※ 追記 v7.0 までは lsp-diagnose って名前だったらしい

github.com