-
-
Notifications
You must be signed in to change notification settings - Fork 366
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
feat: add roslyn lsp #6330
base: main
Are you sure you want to change the base?
feat: add roslyn lsp #6330
Conversation
Nice work though I don't think having the source file repo being different from the homepage url is a good idea as this will inevitably cause the downstream/upstream problem like users reporting bugs to the upstream project when it's a downstream issue and vice versa. |
I can easily change the source url, no problem :) |
Would be awesome to have this merged. Updating this manually is a pain. |
I wrote a bash script to update the lsp in the meantime. You just have to replace |
purl knows the concept of "repository_url" maybe this could be implemented for nuget, so we can reference the packages directly from microsoft repository? |
e6860cb
to
068f2c4
Compare
FYI: I am currently working on providing a way to install "regular" (not dotnet tool) nuget packages, which would just download the plain nuget and extract it into a directory. This would allow to also use "repository_url" to pull nuget images from custom registries, such as the one from microsoft. The file for roslyn would then look like this: name: roslyn
description: |
The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
homepage: https://github.com/dotnet/roslyn
licenses:
- MIT
languages:
- C#
categories:
- LSP
source:
id: pkg:nuget/[email protected]?repository_url=https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-impl/nuget/v3/index.json
download:
file: Microsoft.CodeAnalysis.LanguageServer.neutral-{{version}}.nupkg
bin:
roslyn: nuget:content/LanguageServer/neutral/Microsoft.CodeAnalysis.LanguageServer.dll
I will reference the PR as soon as I am finishing some cleanup. |
Update package.yaml Co-authored-by: SimonSchwendele <[email protected]>
Sorry to ping you @williamboman But is there anything else that I need to do? It seems like there is a lot of excitement for this, and I would really appreciate it if someone could review it so that we could (hopefully) get it merged😅 It would really make my life (and I guess others) easier to update the language server |
Hey sorry for super late review, I see there's a lot of interest in this. I've had some reservations with this one because of:
Also as a side note, you can pretty easily create and use other registry sources. I see someone already provided an alternative registry for this so hopefully some people found that useful, also see https://github.com/williamboman/mason-registry-playground for a template for registries. |
I delete them frequently because I dont think its worth keeping them. |
Alright! So if I understand you correctly, you are a bit hesitant to do it like this? Is there something I could help with to make it available in core without depending on other third party registries? |
What do you think about the #1781 PR, this would allow to use official Microsoft repository of the new Language Server, and any other repository then "nuget.org" in the future if needed. It also allow downloading nuget packages that are not "tools" but rather plain zip files. I can provide more Info about the rationals why this is not possible with the current way it's handled in mason. |
Describe your changes
This adds the roslyn language server from https://github.com/dotnet/roslyn/ which is a part of the C# dev kit in vscode.
Issue ticket number and link
Checklist before requesting a review
This language server doesn't start correctly by naively using it with nvim-lspconfig or
vim.lsp.start
. There needs to be a little bit of trickery to start it, since the server sends the pipe to communicate through, instead of allowing the client to name a pipe or communicate through stdio.However, I have forked a plugin that started on this, and I am now maintaining it. I got this issue seblj/roslyn.nvim#11 which asked if I would consider adding support for easier installation. The author of the issue created this repo https://github.com/Crashdummyy/roslynLanguageServer which gets a new version once a day.
This prompted me to think about adding it to mason, as it would really help with installation for me and whoever else is using the plugin😄
I tested to start it with my plugin, and it started just like it does when installing it manually. I also tested installation of all the different targets I added support for, and all of them was able to download just fine😄
Screenshots