持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情
analyzer | Dart Package (flutter-io.cn)
译时版本:5.1.0
analyzer
该包提供了对 Dart 代码进行静态分析的库。 可用于工具集成和嵌入。
终端用户需要使用 dart analyze 命令行工具分析他们的 Dart 代码。
集成器想要添加 Dart 支持的话,需要使用 Dart Analysis Server。有Analysis Server API 说明 可用。
如果要向编辑器或 IDE 添加 Dart 支持的话,请通过向 邮件列表 发送邮件联系我们。
配置 analyzer
dart analyze 和 Dart Analysis Server 都可以在 analysis_options.yaml 文件中进行配置。(不推荐使用 .analysis_options 文件)。该 YAML 文件可以控制哪些文件和路径会被分析,会应用哪些提示,等。
如果你在工程中嵌入了 analyzer 库,就需要负责找到分析选项文件、解析它、并配置 analyzer。
分析选项文件应该在工程的根目录下(例如,和pubspec.yaml 同级目录)。不同的analyzer的嵌入器,如 dart analyze 或 Dart Analysis Server ,会以多种不同的方式选择去查找该文件。可参考文档以学习更多。
这里有一个示例文件,指示 analyzer 忽略两个文件:
analyzer:
exclude:
- test/_data/p4/lib/lib1.dart
- test/_data/p5/p5.dart
- test/_data/bad*.dart
- test/_brokendata/**
注意你可以使用 globs ,使用 glob package 定义。
这里有个示例文件,有两个提示规则可用:
linter:
rules:
- camel_case_types
- empty_constructor_bodies
查看所有可用的 Dart 提示规则。
可以将 analyzer 部分和 linter 部分绑定到一个单独的配置中。这里有一个示例:
analyzer:
exclude:
- test/_data/p4/lib/lib1.dart
linter:
rules:
- camel_case_types
需要更多信息,查看文档里的 定制静态分析。
为什么要使用该库?
有些工具嵌入了该库,比如:
- dart format - 一个Dart 代码的格式化工具
- dart doc - 一个用于 Dart 代码的文档生成器。
- Dart Analysis Server - 一个有状态的服务器,支持 IDE 和编辑器。
支持
可在 github.com/dart-lang/s… 提交 issue 和特性要求。 这些会通过 analyzer 分类优先级 进行分类。
欢迎在 Dart Analyzer 讨论组 提出问题和进行讨论。
背景
该包中的 API 是通过翻译器用机器生成的,它们基于以前的 Java 实现。
一些 API 看上去仍然和它们的 Java 前身很像,而不像是纯粹的 Dart API 。
另外,现在在公开的 API 和内部的 API 之间还没有完全分开。 我们计划解决该问题,但是这样做的话,很不幸地是,需要大量的破坏性改动。 我们会努力为我们的客户最小化存在的痛点,但是一些痛点还是不可避免的。
许可证
查看 LICENSE 文件。