I just set up Neovim with the roc language server for the first time. Auto-complete works and I can see error messages, but it seems that the lsp highlights the entire file anytime there's any error. Neovim logs shows that the
Is there a roadmap for when better highlighting would be available?
Is that a feature that I might be able to help implement? I can see that the line number is printed in the error message itself so this seems like low-hanging fruit.
Just need to clarify are you working with the new zig compiler or the older rust one? where did you get your roc binary from?
Development is basically frozen on the old Rust compiler, so if the LSP issue is there it wont be fixed.
For the zig compiler, if you could make a GH Issue that would be helpful.
There isn't anyone working on LSP features right now that I know of. You're welcome to have a go a fixing it if you would like to.
I'm currently on pkg:github/roc-lang/roc@alpha4-rolling which I assume is the Zig compiler version, right?
Is everyone else just raw-dogging the code without highlighting and other LSP feature?
Oh wait, Alpha4-rolling last had an update back in August 2025. So I might be on the rust version.
That is the old Rust compiler (which is much more stable currently)
The LSP was pretty mature though I thought
It is pretty mature. I think it's literally just missing a little bit of polish. It shows error messages that look helpful and well-worded. And the autocomplete works great. I don't know enough about Roc yet to know if the semantic highlighting is good but I do see some highlighting too.
It's just that when I make a typo, the entire file gets the red squiggly underline. I just realized my original message cut off before I finished my sentence, but I checked the neovim lsp logs and saw that the message coming from the LSP told neovim to highlight every line. It looked something like this:
range = { ["end"] = { character = 9999092, line = <end-of-file> }, start = { character = 0, line = 0 } }
MMMaellon said:
Is everyone else just raw-dogging the code without highlighting and other LSP feature?
This is exactly what I was wondering - what does the workflow look like? Building and looking at line numbers in the output?
Anyway I haven't been able to get the LSP working on neovim... I managed to build the rust crate (had to use zig version 0.13.0 for this to work), but when I even open the hello world file hello.roc I get Failed to parse Roc source file: Header(Start(@0)) (load).
For highlighting, I am using https://github.com/ivan-demchenko/roc-vscode-unofficial with in the settings for the language server exe /Users/username/gitrepos/temp/roc_nightly-macos_apple_silicon-2026-04-14-c4161ad/roc experimental-lsp --debug-transport.
I don't have live error feedback, but I am pretty familiar with Roc at this point :p
Editor experience is important to us but I have a few more high priority items to finish first.
Last updated: May 23 2026 at 12:51 UTC