- Add VariableSpec class with magnitude field validation - Add Formula class supporting multiple input/output variables - Support d4rt_code as string or object with code field - Add comprehensive tests for parsing and serialization - Fix broken test import in pruebas_d4rt_test.dart Follows README.md format requirements exactly
111 lines
3.9 KiB
Markdown
111 lines
3.9 KiB
Markdown
[](https://pub.dev/packages/analyzer)
|
|
[](https://pub.dev/packages/analyzer/publisher)
|
|
|
|
This package provides a library that performs static analysis
|
|
of Dart code. It is useful for tool integration and embedding.
|
|
|
|
End-users should use the [dart analyze][] command-line tool
|
|
to analyze their Dart code.
|
|
|
|
Integrators that want to add Dart support to their editor
|
|
should use the _Dart Analysis Server_.
|
|
The [Analysis Server API Specification][serverapi] is available.
|
|
If you are adding Dart support to an editor or IDE, please let us know
|
|
by emailing our [list][].
|
|
|
|
## Configuring the analyzer
|
|
|
|
Both `dart analyze` and Dart Analysis Server can be configured with an
|
|
`analysis_options.yaml` file (using an `.analysis_options` file is deprecated).
|
|
This YAML file can control which files and paths are analyzed,
|
|
which lints are applied, and more.
|
|
|
|
If you are embedding the analyzer library in your project, you are responsible
|
|
for finding the analysis options file, parsing it, and configuring the analyzer.
|
|
|
|
The analysis options file should live at the root of your project (for example,
|
|
next to your `pubspec.yaml`). Different embedders of analyzer, such as
|
|
`dart analyze` or Dart Analysis Server, may choose to find the file in various
|
|
different ways. Consult their documentation to learn more.
|
|
|
|
Here is an example file that instructs the analyzer to ignore two files:
|
|
|
|
```yaml
|
|
analyzer:
|
|
exclude:
|
|
- test/_data/p4/lib/lib1.dart
|
|
- test/_data/p5/p5.dart
|
|
- test/_data/bad*.dart
|
|
- test/_brokendata/**
|
|
```
|
|
|
|
Note that you can use globs, as defined by the [glob package][glob].
|
|
|
|
Here is an example file that enables two lint rules:
|
|
|
|
```yaml
|
|
linter:
|
|
rules:
|
|
- camel_case_types
|
|
- empty_constructor_bodies
|
|
```
|
|
|
|
Check out all the available [Dart lint rules][lintrules].
|
|
|
|
You can combine the `analyzer` section and the `linter` section into a single
|
|
configuration. Here is an example:
|
|
|
|
```yaml
|
|
analyzer:
|
|
exclude:
|
|
- test/_data/p4/lib/lib1.dart
|
|
linter:
|
|
rules:
|
|
- camel_case_types
|
|
```
|
|
|
|
For more information, see the docs for
|
|
[customizing static analysis][custom_analysis].
|
|
|
|
## Who uses this library?
|
|
|
|
Many tools embed this library, such as:
|
|
|
|
* [dart format] - a formatter for Dart code
|
|
* [dart doc] - a documentation generator for Dart code
|
|
* [Dart Analysis Server][analysis_server] - a stateful server that supports IDEs and editors
|
|
|
|
## Support
|
|
|
|
Post issues and feature requests at https://github.com/dart-lang/sdk/issues.
|
|
These will be triaged according to the [analyzer triage priorities][triage].
|
|
|
|
Questions and discussions are welcome at the
|
|
[Dart Analyzer Discussion Group][list].
|
|
|
|
## Background
|
|
|
|
The APIs in this package were originally machine generated by a translator and were
|
|
based on an earlier Java implementation. Several of the API's still look like their Java
|
|
predecessors rather than clean Dart APIs.
|
|
|
|
In addition, there is currently no clean distinction between public and internal
|
|
APIs. We plan to address this issue but doing so will, unfortunately, require a
|
|
large number of breaking changes. We will try to minimize the pain this causes for
|
|
our clients, but some pain is inevitable.
|
|
|
|
## License
|
|
|
|
See the [LICENSE] file.
|
|
|
|
[serverapi]: https://htmlpreview.github.io/?https://github.com/dart-lang/sdk/blob/main/pkg/analysis_server/doc/api.html
|
|
[dart analyze]: https://dart.dev/tools/dart-analyze
|
|
[list]: https://groups.google.com/a/dartlang.org/forum/#!forum/analyzer-discuss
|
|
[lintrules]: https://dart.dev/lints
|
|
[glob]: https://pub.dev/packages/glob
|
|
[LICENSE]: https://github.com/dart-lang/sdk/blob/main/pkg/analyzer/LICENSE
|
|
[dart format]: https://github.com/dart-lang/dart_style
|
|
[dart doc]: https://github.com/dart-lang/dartdoc
|
|
[analysis_server]: https://github.com/dart-lang/sdk/tree/main/pkg/analysis_server
|
|
[custom_analysis]: https://dart.dev/guides/language/analysis-options
|
|
[triage]: https://github.com/dart-lang/sdk/blob/main/pkg/analyzer/TRIAGE.md
|