This is a hacky Roslyn-based LSP server for C#, as an alternative to omnisharp-roslyn.
csharp-ls
requires .NET 8 SDK to be installed. However it has been reported to work with projects using older versions of dotnet SDK, including .NET Core 3, .NET Framework 4.8 and possibly older ones too as it uses the standard Roslyn/MSBuild libs that Visual Studio & omnisharp does.
See CHANGELOG.md for the list of recent improvements/fixes.
dotnet tool install --global csharp-ls
csharp.solution
- solution to load, optionalcsharp.applyFormattingOptions
- use formatting options as supplied by the client (may override .editorconfig
values), defaults to false
csharp-ls
implements the standard LSP protocol to interact with your editor. However there are some features that need a non-standard implementation and this is where editor-specific plugins can be helpful.
Supports automatic installation, go-to-metatada (can view code from nuget/compiled dlls) and some additional features.
See emacs/lsp-mode.
vytautassurvila/vscode-csharp-lsSee csharp-ls and vscode-csharp-ls @ github.
statiolake/vscode-csharp-lsSee vscode-csharp-ls.
decompile for your editor , with the example of neovimThe api is "csharp/metadata", in neovim ,you can request it like
local result, err = client.request_sync("csharp/metadata", params, 10000)
You need to send a uri, it is like
csharp:/metadata/projects/trainning2/assemblies/System.Console/symbols/System.Console.cs
In neovim, it will be result(s) from vim.lsp.handles["textDocument/definition"]
and the key of uri is the key,
The key to send is like
local params = { timeout = 5000, textDocument = { uri = uri, } }
The key of textDocument is needed. And timeout is just for neovim. It is the same if is expressed by json.
The object received is like
{ projectName = "csharp-test", assemblyName = "System.Runtime", symbolName = "System.String", source = "using System.Buffers;\n ...." }
And In neovim, You receive the "result" above, you can get the decompile source from
local result, err = client.request_sync("csharp/metadata", params, 10000) local source if not err then source = result.result.source end
And there is a plugin of neovim for you to decompile it.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4