https://github.com/jdtsmith/eglot-booster
Boost eglot using lsp-booster
https://github.com/jdtsmith/eglot-booster
Last synced: over 1 year ago
JSON representation
Boost eglot using lsp-booster
- Host: GitHub
- URL: https://github.com/jdtsmith/eglot-booster
- Owner: jdtsmith
- License: gpl-3.0
- Created: 2024-01-09T22:10:36.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T07:42:14.000Z (over 1 year ago)
- Last Synced: 2025-01-22T06:24:16.754Z (over 1 year ago)
- Language: Emacs Lisp
- Size: 33.2 KB
- Stars: 182
- Watchers: 8
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# eglot-booster: Boost eglot using lsp-booster
The [emacs-lsp-booster](https://github.com/blahgeek/emacs-lsp-booster) project provides a rust-based wrapper program which substantially speeds up emacs' interactions with lsp servers. This small package enables [eglot](https://github.com/joaotavora/eglot) to use it.
## Install/Usage
Install directly from this repo via `M-x package-vc-install` (pasting in this URL), or using, e.g. `straight`. Then, in your init, simply
```elisp
(use-package eglot-booster
:after eglot
:config (eglot-booster-mode))
```
Then just use eglot as normal. You should notice no differences other than speedier performance and less I/O blocking.
To verify that the wrapper is functioning, `M-x eglot-events-buffer` and look at the beginning for `emacs_lsp_booster::app` notices. If you'd like to avoid boosting remote servers (those run over TRAMP), set `eglot-booster-no-remote-boost` to `t`.
> [!IMPORTANT]
> At present only local or remote (tramp-based) lsp server programs which communicate by standard input/output can be wrapped, not lsp servers communicating over network ports (local or remote). Using remote servers over tramp requires installing `emacs-lsp-booster` on the remote server.
## Testing
Maybe you don't even need this. You can `M-x eglot-booster` to disable the boost at any time. Then `M-x eglot-shutdown-all`, restart eglot (`M-x eglot` is usually enough) in a large/heavy-weight file, and compare performance before and after.
## I/O Only
`emacs-lsp-booster` offers the option `--disable-bytecode`. Setting `eglot-booster-io-only=t` will use this option, processing JSON as normal. This way you still get the benefit of I/O buffering, but can use Emacs' native JSON parser (which was substantially sped-up in v30).