Open
Description
Tasks needed to deliver a new analyzer plugin system:
Tech preview
- Document requirements. Public doc available
- Design overall system. Public doc available
- Design plugin API. Public doc available
- Prototype system, to measure memory and CPU.
- Enforce analyzer compatibility, by matching SDK and using a pubspec version constraint.
- Relative path plugins are normalized.
- [analyzer plugins] Plugin diagnostics should be shown in
dart analyze
and affect the RC #59646 - Ship analysis_server_plugin package.
- Document the API (taken from the design docs, but checked in)
General availability
- Support priority files.
- [analyzer plugins] Plugin-reported diagnostics should be ignorable inline #59647
- [analyzer plugins] Support custom severity in analysis options #59644
- Analyzer plugin failure at the commandline should be displayed in the terminal #60175
- LintCode, LintRule, NodeLintRegistry, and LinterContext are public API. (Best effort; these can honestly be under "General availability", but there is conceivably less churn if they are renamed and made public before GA.)
- Differing plugin sets in analysis options within an analysis context are at least understood, tested, documented.
- Design workflow for slow plugins.
- Design workflow for plugin crash.
- Design for AOT compilation.
- Provide a testing story.
- Provide a debugging story.
- Change the protocol regarding offsets, lines, and columns.
- Diagnostics page has info about individual plugins, and pub resolution
- [Future] Document new analyzer plugin system site-www#5892
Product excellence
- Support writing Assists
- Support providing Snippets
- Support writing analysis rules for pubspec files and analysis options files.
- Support writing quick fixes for pubspec files and analysis options files.
- Support applying plugin-provided quick fixes with
dart fix
.