檢視原始碼 Mix.Task.Compiler.Diagnostic (Mix v1.16.2)
診斷資訊,例如警告或編譯錯誤。
檔案和位置與診斷應顯示的位置相關。如果有檔案和位置,則診斷是精確的,您可以使用指定的檔案和位置來產生片段、IDE 註解等。選用的範圍包含診斷結束的行和欄。
否則,可能會提供堆疊追蹤,您可以放置自己的啟發式方法來提供更好的報告。
原始碼欄位指向編譯器追蹤錯誤的原始碼檔案。例如,檔案 lib/foo.ex
可能會嵌入 .eex
範本,來自 lib/foo/bar.eex
。EEx 範本的語法錯誤將指向檔案 lib/foo/bar.eex
,但原始碼是 lib/foo.ex
。
摘要
類型
@type severity() :: :error | :warning | :information | :hint
診斷的嚴重性
:error
- 導致編譯失敗的問題:warning
- 沒有導致失敗但建議程式設計師可能犯錯的問題:hint
- 對於樣式或良好做法的建議,其嚴重性不如警告:information
- 與編譯相關的任何其他資訊,不屬於以上類別
@type t() :: %Mix.Task.Compiler.Diagnostic{ compiler_name: String.t(), details: term(), file: Path.t() | nil, message: IO.chardata(), position: Code.position(), severity: severity(), source: Path.t() | nil, span: {line :: pos_integer(), column :: pos_integer()} | nil, stacktrace: Exception.stacktrace() }