Skip to content

markupMessageSupport is hard-coded to false, what would it take to enable it? #1860

Open

Description

DiagnosticFeature.fillClientCapabilities sets:

// VS Code has no support for markup content in diagnostic messages.
capability.markupMessageSupport = false;

(client/src/common/diagnostic.ts, ~L1141 on main)

I want to request functionally to support MarkupContent diagnostic messages with unified-language-server (remark-based markdown linting).
It's messages are authored as markdown at the source, so today things like Don't add a trailing `:` to headings reach the user with the backticks intact.

Two questions:

  1. Is that flag waiting purely on feature: Allow diagnostics messages to have markdown content vscode#214051 / Allow diagnostics messages to have markdown (or formatted text) content vscode#54272
    landing markdown support in vscode.Diagnostic.message, or is there
    something else blocking it on the client side?

  2. What should a push-only server read?
    The 3.18 guard is textDocument.diagnostic.markupMessageSupport, which is a pull-model
    capability and PublishDiagnosticsClientCapabilities has no equivalent.
    But asDiagnostic (client/src/common/protocolConverter.ts, ~L329) is shared
    between the push and pull paths and switches on the value type rather than the negotiated capability.
    Zed hit the same thing in lsp: Add client support for LSP 3.18 markdown diagnostic messages zed-industries/zed#61030 and advertises the capability only when pull
    diagnostics are enabled, while handling markup on both paths.

Happy to open a spec issue instead if question 2 belongs upstream.

Activity

  1. dbaeumer commented on Sep 21, 2026

    @dbaeumer
    Member

    Yes, that flag is waiting on the support in VS Code.

    For push diagnostics we never had client capabilities. I would argue that we should update the spec and say that the property is for both pull and push.

    Would you be willing to provide a PR?

  2. Marvin-Brouwer commented on Sep 21, 2026

    @Marvin-Brouwer
    Author

    Or course, I'm happy to help.

    Should push-only clients set textDocument.diagnostic.markupMessageSupport, or would you rather mirror the property under publishDiagnostics?

  3. dbaeumer commented on Sep 21, 2026

    @dbaeumer
    Member

    I would actually mirror it. Makes it easier to explain an evolve.

  4. Marvin-Brouwer commented on Sep 21, 2026

    @Marvin-Brouwer
    Author

    I've given it a go, you can see them here:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

info-neededIssue requires more information from poster

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions