9f6d1c1029
Changes the analyzer and related packages so that when they refer to diagnostic constants, they do so via the import prefix `diag`, which refers to the appropriate `diagnostic.dart` file containing the top level diagnostic constant declarations, rather than the static declarations inside `DiagnosticCode`-derived classes (which will soon be removed). This CL was created by the following steps: - Run the script `pkg/analyzer_utilities/tool/messages/switch_to_toplevel_diagnostics.dart`. - Execute `dart fix --apply --code=unused_import,unnecessary_import` on the following directories (this removes imports that are no longer necessary due to the change): - `pkg/analysis_server` - `pkg/analyzer` - `pkg/linter` - `pkg/analysis_server_plugin` - `pkg/analyzer_plugin` - `pkg/analyzer_testing` - `pkg/front_end` - `pkg/analyzer_cli` - Execute `dart format` on the following files and directories: - `pkg/analysis_server` - `pkg/analyzer` - `pkg/linter` - `pkg/analysis_server_plugin` - `pkg/analyzer_plugin` - `pkg/analyzer_testing` - `pkg/front_end/test/scanner_test.dart` (Note that `pkg/front_end` and `pkg/analyzer_cli` are not re-formatted as whole directories because they contain `.dart` files that are test cases rather than source code, and reformatting those files might change test expectations.) - Manually add `diag` to pkg/front_end/test/spell_checking_list_tests.txt. - Manually fix the ignore comment in `pkg/analyzer_testing/lib/src/analysis_rule/pub_package_resolution.dart`. (The script `switch_to_toplevel_diagnostics.dart` automatically adds it after `import 'package:analyzer/src/diagnostic/diagnostic.dart' as diag;`, but then executing `dart format` bumps the ignore comment to the following line, where it has no effect.) Change-Id: I6a6a69643022aab2b5a6224fb4124eead243260d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/461521 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@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: