nvim-lua / lsp-status.nvim

Utility functions for getting diagnostic status and progress messages from LSP servers, for use in the Neovim statusline
MIT License
625 stars 41 forks source link

Lsp standard $/progress #3

Closed teto closed 4 years ago

teto commented 4 years ago

Thanks for the project, I've been looking forward to such a project (if only the spinner) for some time ! (and in general would like to reuse it for neomake/while grepping etc). I am interested in ghcide support https://github.com/digital-asset/ghcide/pull/153. Also the lsp standard has its own mechanism https://microsoft.github.io/language-server-protocol/specification#progress, that would be nice to have in (upstream?) neovim. Just wondering about your future projects in supporting these for instance.

wbthomason commented 4 years ago

Hi, thanks for your interest!

I am interested in ghcide support digital-asset/ghcide#153

I'd be happy to add this, but I'm not easily able to test ghcide myself right now. I'll try to get to it, but if you're willing to make a PR, that would be great! If so, you might want to look at https://github.com/wbthomason/lsp-status.nvim/blob/master/lua/lsp-status/extensions/pyls_ms.lua to see how the extension should be structured.

Also the lsp standard has its own mechanism https://microsoft.github.io/language-server-protocol/specification#progress, that would be nice to have in (upstream?) neovim. Just wondering about your future projects in supporting these for instance.

This is actually already built-in, see https://github.com/wbthomason/lsp-status.nvim/blob/5e43909bd48adeb590e6f7d433531bdd66595d40/lua/lsp-status/messaging.lua#L93-L95. I haven't found a language server implementation that actually uses this mechanism (I think it's a new addition) - if you know of one I could use for testing, that would be great!

teto commented 4 years ago

I mean that would be cool to upstream vim.lsp.callbacks['$/progress'] = progress_callback into neovim since it's part of the LSP standard.

wbthomason commented 4 years ago

@teto Ah, sorry, I misunderstood! Yeah, that would be cool - if any of the Neovim maintainers want to move any of this into the core, I'm fully in support.

Incidentally, I got around to playing with ghcide, and (1) found some bugs with progress_callback and (2) got it working (as well as some unrelated tweaks to how the messaging code is organized, support for static "status messages", etc.) So, thanks! ghcide is now good to go as far as I can tell - if you test it and see something missing, please let me know.

I'll leave it to you to close the issue in case there's either something more you'd like for ghcide or you think it's a good reference point for discussing merging some functionality into Neovim core.

teto commented 4 years ago

Thanks will try and give you feedback. As one of the neovim maintainers, I incite you to upstream it :p

teto commented 4 years ago

That worked very well, you made a nerdy dream come true !