aa529bc684
This adds support for analysis domains that plugins contribute to by sending notifications. I've only implemented folding so far, but most of this CL is to cache results from plugins and to adapt sending server capabilities. Instead of using a NullNotificationManager, the LSP server now uses a regular NotificationManager, except that results won't be forwarded to clients. LSP handlers will fetch partial results from plugins and merge them with data from the server that will be computed when needed. I've extracted the server capabilities calculation from the init handlers into ServerCapabilityComputer. It will also contain the interestingFiles glob from active plugins and re-register capabilities whenever plugins change. Change-Id: I9869240cbfa284592e952498933e638b89a2a763 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142981 Reviewed-by: Danny Tuppeny <danny@tuppeny.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>