Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qti3e/rad
Rust analyzer daemon
https://github.com/qti3e/rad
Last synced: about 1 month ago
JSON representation
Rust analyzer daemon
- Host: GitHub
- URL: https://github.com/qti3e/rad
- Owner: qti3e
- Created: 2023-10-30T01:17:47.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-18T00:19:29.000Z (4 months ago)
- Last Synced: 2024-09-18T20:54:36.666Z (4 months ago)
- Language: Rust
- Size: 75.2 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Rust Analyzer Daemon
Still a work in progress. But is pretty much functional and *works*.
## Why?
Multiplexing a language server is more than just multiplexing some bytes without caring what those
bytes are. Doing so can leave the language and the client in a broken state which might not have
some immediate error, but will eventually show itself by some Unrecoverable error.This implementation tries to keep some state in mind and handle those scenarios where doing just
a simple byte transfer breaks either the client or the server.## Installation
Not on cargo.toml just yet, so you have to clone.
```
git clone https://github.com/qti3e/rad.git
cd rad
cargo install --path .
```## Running it
Keep the following command running in one of the terminals:
```
rad daemon
```Configure your editor use `rad` as the rust-analyzer binary, for example in neovim:
```
lspconfig.rust_analyzer.setup {
cmd = { "rad" },
settings = {
['rust-analyzer'] = {},
},
}
```## Supported Systems
I personally don't care about Windows and use Unix Domain Sockets right now, but if someone
really wants to have windows support, make a pull request.## Future work
1. `workDoneProgress` is explicitly ignored right now.
2. There is no garbage collection right now. The server keeps running.
3. Multiple readers on the same document is not supported yet.
4. Better logs and possibly a nice terminal UI.