Hey there,
So I know if emacs is lagging I should run the profiler for a bit while it’s lagging and then review the report. However, I’m not sure what to do next.
It looks clear that company / completion is responsible for the laggy behavior here, especially a jsonrpc-request made by completion. That makes sense, there’s a slow network call somewhere in the works that’s gumming things up.
I’m using eglot for lsp and would expect that would be the source of a slow jsonrpc call, maybe eglot trying to get completion candidates on every keystroke through the LSP server? But I don’t understand the stack here well enough to know how to proceed in debugging or fixing things.
Would love any help. Knowing what to fix is great - but also I’m really interested in knowing how to know what to do next in general in this scenario.
Thanks!
Ok basically json-rpc and company taking >50% of compute . What is the Lsp server you are running? What version of emcas?
I’ve found that using this configuration, the LSP can’t halt the UI anymore, resulting in a very snappy experience. The results still take a few secs to show up, but at least you aren’t typing blindly waiting for the UI to refresh.
(setq eglot-autoshutdown t) (setq eglot-sync-connect 0) (setq eglot-events-buffer-size 0) (fset #'jsonrpc--log-event #'ignore) (add-hook 'focus-out-hook 'garbage-collect)
If you don’t use eglot, then the last two are the only relevant ones, which are the ones actually doing the work I think.
Try lsp-bridge, plug and play, never lags
It is indeed a fast LSP for emacs. But the documentation is kinda difficult to grasp. I was trying to make it use terraform-ls but unable to get it working.