For later...let's be a little less synchronous.
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#messageOrdering
Especially since compilation can take a while, we could have two work queues: one for tasks that we know do not depend on ordering (e.g., symbol completion) and one for tasks that may depend on ordering (e.g., textDocument/didSave).
For later...let's be a little less synchronous.
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#messageOrdering
Especially since compilation can take a while, we could have two work queues: one for tasks that we know do not depend on ordering (e.g., symbol completion) and one for tasks that may depend on ordering (e.g., textDocument/didSave).