跳至主要內容

comment_references

穩定
提供修正

僅在文件註解中參考作用域內的識別符。

詳細資訊

#

請務必僅在文件註解中參考作用域內的識別符。

如果您將變數、方法或類型名稱等識別符以方括號括起來,那麼您的 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 可以解析但分析器無法解析的註解參考。請參閱 sdk#57783 以取得更多資訊。

啟用

#

若要啟用 comment_references 規則,請在您的 analysis_options.yaml 檔案中的 linter > rules 下新增 comment_references

analysis_options.yaml
yaml
linter:
  rules:
    - comment_references

如果您改用 YAML map 語法來設定 linter 規則,請在 linter > rules 下新增 comment_references: true

analysis_options.yaml
yaml
linter:
  rules:
    comment_references: true