dart-sdk/pkg/analyzer_plugin
Sam Rawlins 49a3fb4f96 [analyzer] Separate the HTML parser utility from the DOM
With the parser code in the same library as the DOM classes, the
`pkg/analyzer/tool/messages/generate.dart` program, which generates all
of the diagnostic classes and diagnostics, _depends_ on a library
with a `parse` method which depends on these diagnostic classes (in
order to report errors while parsing HTML). This means that if
there is any existing error (like an unknown identifier) in the
existing error codes, it is impossible to generate the error codes.

Since we don't need the `parse` method to generate diagnostics, we
split up the library and remove the indirect dependency.

Separating the parser code out removes the loop.

Change-Id: Ifb9e9fd979e341ae64a1ed49aaf3758d3dcf1dee
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/287220
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2023-03-08 03:06:19 +00:00
..
doc Remove domain 'kythe' from DAS. 2022-10-21 17:03:29 +00:00
lib A small optimization for LocalDeclarationVisitor 2023-03-07 18:14:23 +00:00
test [analyzer] Rename all 'servicesPort' variables to 'servicePort' 2023-02-03 01:35:28 +00:00
tool/spec [analyzer] Separate the HTML parser utility from the DOM 2023-03-08 03:06:19 +00:00
.gitignore pkg/analyzer_plugin: support the latest pkg:analyzer 2019-04-24 02:26:26 +00:00
analysis_options.yaml Enable new linter rules in analyzer packages 2022-11-21 23:02:38 +00:00
CHANGELOG.md analyzer_plugin: Support latest analyzer in pubspec 2022-09-23 21:57:49 +00:00
LICENSE Update LICENSE 2021-04-07 10:28:38 +00:00
OWNERS [infra] Add OWNERS to the Dart SDK 2022-02-14 14:06:34 +00:00
pubspec.yaml analyzer_plugin: Support latest analyzer in pubspec 2022-09-23 21:57:49 +00:00
README.md [pkg] normalize the headers of the pkg/ readmes 2022-05-31 21:00:13 +00:00

pub package package publisher

A framework for building plugins for the analysis server.

Usage

Note: The plugin support is not currently available for general use.

Plugins are written in Dart and are run in the same VM as the analysis server. The analysis server runs each plugin in a separate isolate and communicates with the plugin using a plugin API. This API is similar to the API used by the analysis server to communicate with clients.

Plugins are automatically discovered and run by the analysis server.

This package contains support code to make it easier to write a plugin. There is a tutorial describing how to use the support in this package.

Support

Post issues and feature requests on the issue tracker.

Questions and discussions are welcome at the Dart Analyzer Discussion Group.

License

See the LICENSE file.