-
Notifications
You must be signed in to change notification settings - Fork 419
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade Omnisharp.Extensions.LanguageServer to 0.16.0 #1754
Conversation
Oops, I didn't convert some of LanguageServerOptions update calls. I commented out in my branch and didn't fix before making a PR. |
Thanks for this @razzmatazz ! I've just started writing C# and I'm trying to build your branch on OS X, but it's been failing at the
Is there something I'm missing or should be doing? |
No, I was stuck on the same thing and this is why the PR has |
@razzmatazz Ah that makes sense, will try commenting the line out to test! Thank you 🙇 |
Can we split this PR up into getting things to work at all versus adding extremely advanced features like progress managers? v1.35 of omnisharp-roslyn reports |
The api for LSP extension has changed and progress manager is required in all the places to be provided. I might have not discovered a way to avoid this by submitting a mock in every place and I might not understand the new progress manager api properly, but this PR is results of my first attempt last time. |
This brings some more LSP functionality to life. Works for me --, under emacs (emacs-lsp) I now have autocompletion, go-to-definition, error list, lenses working.
…ileChangeToken.cs After upgrade of Omnisharp.Extensions.LSP we started getting errors where Microsoft.Extensions.Configuration API started to register stateful file change callbacks.
@d4ncer I believe I fixed the issue with PollingFileChangeToken (hopefully didn't break live omnisharp.json reloading). There is still an issue with log messages not being reported to LSP client, thus still [WIP]. But it seems to be somewhat working at this state (at least with emacs/emacs-lsp) |
This uses LoggerFactory as built by composition host so we can actually have logging working with the new Omnisharp.Extensions.LSP version.
I got logging to client working again, and maybe someone can review this PR. All the changes related to ProgressManager needs review the most, as I am not sure about semantics, but the changes appear not to break/make things worse. |
@razzmatazz Great news! I'll try again sometime today and report back. For some reason I couldn't get even basic go-to-def working with |
Hi @filipw. Would it be possible to review this PR as it fixes LSP mode of omnisharp-roslyn (w.r.t. file sync issue)? |
I have created a more conservative version of this PR in:
Which does not require so many changes to the codebase (no ProgressManager changes required) and still fixes the issue with file synchronisation. |
Closing this one in favor of the more conservative #1791 |
This brings some more LSP functionality to life. The fixes work for me --, under
emacs (emacs-lsp) I now have autocompletion, go-to-definition, error list,
lenses working via lsp.
I am not really sure if this is how I should plug ProgressManager into omnisharp code (i.e. what should the lifetime of progress manager look like). When looking at code samples from csharp-language-server-protocol repo, it seems that it should be a singleton and then passed over to handlers. Maybe @david-driscoll can comment on that.