In https://dart-review.googlesource.com/c/sdk/+/191862 we added two new required fields to `Location`. Unfortunately this was a breaking change because plugins using an older version of the `analyzer_plugin` produce location objects without those fields, leading to deserialization failures. This CL makes those fields optional in order to fix the deserialization issue. Unfortunately, the `analyzer_plugin` package was published after the required fields were added. Making them optional is a breaking change because the constructor parameters go from being positional to being named parameters. We also neglected to update the version number of the protocol as part of the previous CL. Technically this is also a breaking change for clients of the analysis server, but given that they had no way to test to see whether these fields existed they would need to have been written as if the fields were optional in order to reference them at all, so I think that from a practical standpoint it isn't a breaking change. That does, however, raise the question of whether we should increment the version numbers as part of this CL. Change-Id: I35fc1f8e950669a3d8dd33cee6b81890261b5c47 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/206942 Reviewed-by: Danny Tuppeny <danny@tuppeny.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
analyzer_plugin
A framework for building plugins for the analysis server.
Usage
Note: The plugin support is not currently available for general use.
Plugins are written in Dart and are run in the same VM as the analysis server. The analysis server runs each plugin in a separate isolate and communicates with the plugin using a plugin API. This API is similar to the API used by the analysis server to communicate with clients.
Plugins are automatically discovered and run by the analysis server.
This package contains support code to make it easier to write a plugin. There is a tutorial describing how to use the support in this package.
Support
Post issues and feature requests on the issue tracker.
Questions and discussions are welcome at the Dart Analyzer Discussion Group.
License
See the LICENSE file.