So I have the need for writing an LSP, and I was wishing it was really easy to get started with doing an LSP with a language with a functional feel. I thought about Rust, but I don't want to mess with the borrow checker, and then I remembered roc.
In a true shower thought I got to thinking, maybe LSP would be a great platform and it would ease the development of LSP servers for folks.
So first of all what do folks think, is an LSP platform a good idea?
Secondly, if it makes sense... what is the best way for me to get started?
@Eli Dowling may have a valuable opinion on this
I looked at modelling the LSP protocol in pure rock just using something like the basic CLI platform. It works and I got a reasonable way through it but hand implementing the LSP protocol is extremely tedious and boring, so I think my time would be better spent making a TypeScript type to roc type converter.
Currently roc is just not great for modelling certain data types present within the LSP protocol. Objects that are quite dynamic, or number enums or string enums. All take quite a lot of hand written type info to get working.
I'm away travelling right now, but I'll be back in a week or so and I can send you some examples and more info.
Last updated: Jul 26 2025 at 12:14 UTC