目录

comment_references

在文档注释中仅引用作用域内的标识符。

此规则从 Dart 2.0 开始可用。

此规则有快速修复可用。

详情

#

应该在文档注释中仅引用作用域内的标识符。

如果您将变量、方法或类型名称等标识符用方括号括起来,那么您的 IDE 和 dart doc 等工具可以链接到它们。为了使其工作,请确保文档中所有用方括号括起来的标识符都在作用域内。

例如,假设 outOfScopeId 超出作用域

错误

dart
/// Returns whether [value] is larger than [outOfScopeId].
bool isOutOfRange(int value) { ... }

正确

dart
/// Returns the larger of [a] or [b].
int max_int(int a, int b) { ... }

请注意,方括号注释格式旨在允许注释使用相当自然的格式引用声明,但不允许任意表达式。特别是,方括号内的代码引用可以包含以下任何一项:

  • 在注释作用域内的裸标识符(有关文档注释中什么是“作用域内”,请参阅规范)。示例包括 [print][Future]
  • 两个由句点分隔的标识符(“带前缀的标识符”),其中第一个标识符充当命名空间标识符,例如类属性名称或带有包含类名称前缀的方法名称,或带有导入前缀的顶级标识符。示例包括 [Future.new](未命名的构造函数)、[Future.value](构造函数)、[Future.wait](静态方法)、[Future.then](实例方法)、[math.max](假设 'dart:async' 导入时带有 max 前缀)。
  • 带前缀的标识符后跟一对括号,用于区分命名构造函数和实例成员(其名称允许冲突)。示例包括 [Future.value()]
  • 三个由两个句点分隔的标识符,其中第一个标识符是导入前缀名称,第二个标识符是顶级元素(如类或扩展),第三个标识符是该顶级元素的成员。示例包括 [async.Future.then](假设 'dart:async' 导入时带有 async 前缀)。

已知限制

comment_references lint 规则与 Dart 分析器的注释引用概念一致,这有时与 Dartdoc 的注释引用概念不同。lint 规则可能会报告 Dartdoc 可以解析的注释引用,即使分析器无法解析。有关更多信息,请参阅 linter#1142

用法

#

要启用 comment_references 规则,请在您的 analysis_options.yaml 文件中的 linter > rules 下添加 comment_references

analysis_options.yaml
yaml
linter:
  rules:
    - comment_references