| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
| |
Setting `offset_encoding` to `utf-8` is causing problem. See discussion at https://github.com/neovim/neovim/discussions/38375.
According to LSP specification 3.17, when `positionEncoding` is not specified in server capability, it's value should be assumed to be `utf-16`, see https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#serverCapabilities.
roslyn_ls does not response `positionEncoding` in initialize result (version `5.4.0-2.26162.5+e11fbc2bc8292680a92d731e5d9a6c7ee229262d`). One can verify this by setting LSP log level to debug, and read LSP log.
So, setting `offset_encoding` in default config is a mistake.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Roslyn code actions can return nested actions using the
`roslyn.client.nestedCodeAction` command. Neovim currently
shows a warning when using call to action with nested actions,
because no handler exists for this command:
```
Language server roslyn_ls does not support command roslyn.client.nestedCodeAction
This command may require a client extension.
```
Solution:
Implement a command handler that:
- resolves code actions using `codeAction/resolve`
- supports Roslyn's `NestedCodeActions` property
- recursively handles nested actions
- presents multiple nested actions via `vim.ui.select`
- applies the final workspace edit or command
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Problem:
As mentioned here (https://github.com/mason-org/mason-registry/pull/6330#issuecomment-3971724747),
there is a change (https://github.com/dotnet/roslyn/pull/82201/changes) that the official language server can be
easily installed via `dotnet` cli.
Solution:
Use the official binary name as a fallback.
|
| |
|
| |
Co-authored-by: Daniel Schmitt <d.schmitt@lansoftware.de>
|
| |
|
| |
Co-authored-by: Daniel Schmitt <d.schmitt@lansoftware.de>
|
| |
|
| |
Try to guess the root_dir by getting the lsp client from the previous buffer.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
This handler was removed a long time ago and was replaced with another handler that is already implemented here:
https://github.com/dotnet/vscode-csharp/commit/9cc41f6d2535a5cb5533dc5ae8f3a10ade16e7b5
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
- Diagnostics were only refreshed for the current buffer, not all buffers
managed by the client. In multi-file C# projects, this left diagnostics
stale unless the user switched buffers.
- Roslyn did not handle override method completion correctly.
Solution:
- Added `roslyn.client.completionComplexEdit` handler to apply edits for
override completions.
- Added `refresh_diagnostics` function, called on project initialization
and on `BufWritePost` / `InsertLeave` events, to proactively pull
diagnostics for all client buffers.
Rationale:
- Roslyn LSP primarily uses pull-based diagnostics. Neovim currently
only triggers diagnostic pulls on text changes in the active buffer.
This makes `debounce_text_changes` insufficient for Roslyn, as changes
in one file can affect diagnostics across the entire solution.
- The autocmds act as a server-specific workaround to mimic an
“on-save/on-idle” pull model.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
vim.lsp.util._refresh() was removed by
https://github.com/neovim/neovim/pull/33903
|
| |
|
|
|
|
|
|
| |
* fix(roslyn_ls): use absolute paths when open `.sln` and `.csproj` files
---------
Co-authored-by: glepnir <glephunter@gmail.com>
|