8034e84ed1
Previously, changing an ordinary formal parameter like `required int x`, to an initializing formal parameter like `required this.x`, was done using a single edit that replaced the entire AST node with a newly constructed one. This had the unfortunate disadvantage that if the formal parameter had any annotations, (like `@visibleForTesting`), they would be removed. The new technique is to make 3 edits: - Insert `this.` before the name. - If the field name is different, replace the parameter name with the field name (this handles migration to the "private named parameters" feature). - If the parameter has an explicit type, and that type is the same as the field's type, delete it. Since I was in the neighborhood, I also generalized the code so that it handles old-style function-typed parameters. Even though those have fallen out of favor, the generalization was pretty easy: I just changed the code to handle `NormalFormalParameter` rather than `SimpleFormalParameter`, and in the case where the parameter is a `FunctionTypedFormalParameter`, make sure to delete the parameters as well. Fixes https://github.com/dart-lang/sdk/issues/62764. Change-Id: I6a6a69642291c5c4cc639725f6a36cb884f6d9bd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/483841 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Paul Berry <paulberry@google.com>
analysis_server
A long-running process that provides analysis results to other tools.
The analysis server is designed to provide on-going analysis of one or more code bases as those code bases are changing.
Using the server
The analysis server is not intended to be used stand-alone, and therefore does not have a human-friendly user interface.
Clients (typically tools, such as an editor) are expected to run the analysis
server in a separate process and communicate with it using a JSON protocol. The
original protocol is specified in the file analysis_server/doc/api.html
and Language Server Protocol support is documented in
tool/lsp_spec/README.md.
Features and bugs
Please file feature requests and bugs at the issue tracker.