ebkalderon / tower-lsp

Language Server Protocol implementation written in Rust
Apache License 2.0
962 stars 54 forks source link

example for a non-sync non-send variables. #340

Closed ratmice closed 2 years ago

ratmice commented 2 years ago

I haven't actually tried e.g. set up an editor to run this... This is mostly extracted a minimal and useless example from my actual project... But I tried to give ample warning that this is basically a workaround for a special situation.

This may or may not actually be something you want to include in the repository, which is fine. If not, it can be here for people to find.

You don't really want to use this unless you have to. Even then you may just want to use a non-async lsp.

But this example shows you can still use tower-lsp, albeit with some amount of pain even in such situations.

ratmice commented 2 years ago

I'm not sure that this one can be runtime_agnostic because of the reliance on mpsc which are async on one end and used in sync on the other. I'll have to look through it as i'm not familiar with the feature.

ratmice commented 2 years ago

Going to close, as I don't really have time to figure out how to make it work in runtime-agnostic, and hopefully people can still find it from the appropriate issues, if there is interest in including it though, let me know/we could reopen and try and fix up the remaining feature issues...