Class ServerRequestScheduling
How an RDCore server schedules the requests and notifications it receives.
public static class ServerRequestScheduling
- Inheritance
-
ServerRequestScheduling
- Inherited Members
Methods
WithEveryRequestAnswered(LanguageServerOptions)
Has the server answer every request it receives, whatever notifications arrive while the request runs.
public static LanguageServerOptions WithEveryRequestAnswered(this LanguageServerOptions options)
Parameters
optionsLanguageServerOptionsThe server's options.
Returns
- LanguageServerOptions
The same options.
Remarks
OmniSharp runs a request such as textDocument/diagnostic in parallel, and a notification such as textDocument/didOpen in order. By
default, a notification that arrives while requests run abandons them, and answers them ContentModified (-32801). In OmniSharp 0.19.9 a
request whose handling starts just as that happens is answered nothing at all, and its client waits forever, with the server idle: HexIDE's client
saw it on a quick run of didOpens, each followed by its diagnostics pull (findings desk #31).
With this, a request runs to its end and is answered. What it answers for a document that has moved on in the meantime is its handler's to decide: the diagnostics pull drops a report of a version that is no longer the document's.