Skip to content

Microsoft.CodeAnalysis.LanguageServer does not respect dynamic registration for diagnostics #76624

Open
@SofusA

Description

@SofusA

Version Used:
4.13.0-3.24629.5

Steps to Reproduce:

  1. Start the language server
  2. Send initialize message with pull diagnostics with dynamicRegistration: false:
{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"general":{"positionEncodings":["utf-8","utf-32","utf-16"]},"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dataSupport":true,"disabledSupport":true,"isPreferredSupport":true,"resolveSupport":{"properties":["edit","command"]}},"completion":{"completionItem":{"deprecatedSupport":true,"insertReplaceSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":true,"tagSupport":{"valueSet":[1]}},"completionItemKind":{}},"diagnostic":{"dynamicRegistration":false,"relatedDocumentSupport":true},"formatting":{"dynamicRegistration":false},"hover":{"contentFormat":["markdown"]},"inlayHint":{"dynamicRegistration":false},"publishDiagnostics":{"tagSupport":{"valueSet":[1,2]},"versionSupport":true},"rename":{"dynamicRegistration":false,"honorsChangeAnnotations":false,"prepareSupport":true},"signatureHelp":{"signatureInformation":{"activeParameterSupport":true,"documentationFormat":["markdown"],"parameterInformation":{"labelOffsetSupport":true}}}},"window":{"workDoneProgress":true},"workspace":{"applyEdit":true,"configuration":true,"diagnostic":{"refreshSupport":true},"didChangeConfiguration":{"dynamicRegistration":false},"didChangeWatchedFiles":{"dynamicRegistration":true,"relativePatternSupport":false},"executeCommand":{"dynamicRegistration":false},"fileOperations":{"didRename":true,"willRename":true},"inlayHint":{"refreshSupport":false},"symbol":{"dynamicRegistration":false},"workspaceEdit":{"documentChanges":true,"failureHandling":"abort","normalizesLineEndings":false,"resourceOperations":["create","rename","delete"]},"workspaceFolders":true}},"clientInfo":{"name":"helix","version":"24.7 (74a9e9e4)"},"processId":125487,"rootPath":"/var/home/sofusa/TestProj","rootUri":"file:///var/home/sofusa/TestProj","workspaceFolders":[{"name":"TestProj","uri":"file:///var/home/sofusa/TestProj"}]},"id":0}

Expected Behavior:
Server responding with diagnostics being a server capability.

Actual Behavior:
It is not, but the server will still respond to pull diagnostics.

Motivation

I am using this language server with Helix editor.

Unfortunately this issue requires me to patch the server capabilities to trick my editor to send pull diagnostics requests.

I think that this is a requirement if Microsoft.CodeAnalysis.LanguageServer should be able to support other editors than Visual Studio Code.

Ps. Thanks for your work. I can actually use this with Helix (with some hack) and it is rock solid!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-IDELSPissues related to the roslyn language server protocol implementationhelp wantedThe issue is "up for grabs" - add a comment if you are interested in working on it

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions