Skip to content

LSPServerOutputFilter filtering valid initialize progress messages #1390

@JustinGrote

Description

@JustinGrote

Reproduce (per the provided sample in this repo)

                    .OnInitialize(
                        (languageServer, initializeParams, cancellationToken) =>
                        {
                            if (languageServer.WorkDoneManager.IsSupported)
                            {
                                initializeProgress = languageServer.WorkDoneManager.For(
                                    initializeParams,
                                    new WorkDoneProgressBegin()
                                    {
                                        Title = "Initializing PowerShell Editor Services",
                                        Percentage = 0,
                                    }
                                );
                            }
etc.

Expected

Progress messages with the initialize worktoken arrive and surfaced on the client as per the initialize spec

Actual

Filtered by LspServerOutputFilter

2024-11-09 18:23:18.598 [trace] Params: {
    "type": 2,
    "message": "OmniSharp.Extensions.LanguageServer.Server.LspServerOutputFilter: Tried to send request or notification before initialization was completed and will be sent later OutgoingNotification { Method = $/progress, Params = ProgressParams { Token = 23da5d56-3261-4793-9561-e91663a356e6, Value = {\r\n  \"title\": \"Initializing PowerShell Editor Services\",\r\n  \"percentage\": 0,\r\n  \"kind\": \"begin\"\r\n} }, TraceParent = , TraceState =  } | @Request='OutgoingNotification { Method = $/progress, Params = ProgressParams { Token = 23da5d56-3261-4793-9561-e91663a356e6, Value = {\r\n  \"title\": \"Initializing PowerShell Editor Services\",\r\n  \"percentage\": 0,\r\n  \"kind\": \"begin\"\r\n} }, TraceParent = , TraceState =  }'"
}
2024-11-09 18:23:18.606 [trace] ◀️ notification 'window/logMessage'.
2024-11-09 18:23:18.606 [trace] Params: {
    "type": 2,
    "message": "OmniSharp.Extensions.LanguageServer.Server.LspServerOutputFilter: Tried to send request or notification before initialization was completed and will be sent later OutgoingNotification { Method = $/progress, Params = ProgressParams { Token = 23da5d56-3261-4793-9561-e91663a356e6, Value = {\r\n  \"percentage\": 50,\r\n  \"kind\": \"report\",\r\n  \"message\": \"Fetching PSES Internal Host\"\r\n} }, TraceParent = , TraceState =  } | @Request='OutgoingNotification { Method = $/progress, Params = ProgressParams { Token = 23da5d56-3261-4793-9561-e91663a356e6, Value = {\r\n  \"percentage\": 50,\r\n  \"kind\": \"report\",\r\n  \"message\": \"Fetching PSES Internal Host\"\r\n} }, TraceParent = , TraceState =  }'"
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions