Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Currently all requests (e.g. signatureHelp, hover, complete, documentHighlight, etc) are processed synchronously, meaning they block subsequent requests/notifications. This includes the time they spend parsing and type checking, which can be significant. In particular, this is wasteful when a new didChange event comes in, since that "should" cancel all in-flight requests for that package, but currently it has to wait for them all to finish.
When gopls is ready for the extra complexity, @ianthehat says that these requests can change to do most of their work asynchronously.