d9f191575a
Replaces the top level function `analyzeAnalysisOptions`, which contained 3 nested local functions, with a class `AnalyzeAnalysisOptions`, where the nested local functions have been changed into private methods. All the variables in the top level function that were implicitly write- or read-captured by the nested local functions have been changed into class fields or explicit method parameters. This should make the code a lot easier to follow. In this CL, I've tried hard to preserve the existing functionality exactly; besides converting local variables to fields and parameters, I haven't really made any changes to the core logic beyond code motion. In follow-up CLs, I plan to make some simplifications that are less obviously semantics preserving (but should be easier to review since they won't involve so much code motion). Once that is done I hope to be able to migrate the error reporting in this class to use the literate diagnostic API. Change-Id: I6a6a696414ecae80535c8d6633eaa567d37dcccc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/479080 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> 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.