7d0a17196c
Work towards https://github.com/dart-lang/sdk/issues/61868 This adds a new notification type, 'PluginPrint'. There are several fields and variables then named 'pluginPrint' or 'print', and I am definitely open to changing these names, but this is the best one that I thought of. PluginPrint has three fields: The name of the plugin that printed, the message that was printed, and the timestamp. We wrap each plugin's AnalysisRule invocations with a zone, so that the `print` handler can know the name of the plugin. The prints are caught and sent to the server isolate as Notifications. The PluginIsolate then stores the collected prints. The Plugins Insights page can then retrieve them and display them. Manual testing, with 1000 libraries that get new lint reported once per file, I did not observe a negative performance impact. Change-Id: Id800ae41781c15ce89d06b563878c2b0edae43d3 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/486827 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Samuel Rawlins <srawlins@google.com>
analysis_server_plugin package
This package offers support for writing Dart analysis server plugins, for Dart 3.10 (Flutter 3.38) and later.
Analysis server plugins empower developers to contribute their own Dart static
analysis in IDEs and at the command line via dart analyze and flutter analyze. Analysis server plugins can offer the following static analyses:
- analysis rules, which report diagnostics in the IDE, and at the command line
- IDE quick fixes, which are local refactorings offered to users to correct a given diagnostic
- IDE quick assists, which are local refactorings that are offered at specific syntax nodes in code, but do not necessarily correct a static code issue
Review the following documents for how to write and how to use analysis server plugins: