12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package analysis
-
- import "go/token"
-
- // A Diagnostic is a message associated with a source location or range.
- //
- // An Analyzer may return a variety of diagnostics; the optional Category,
- // which should be a constant, may be used to classify them.
- // It is primarily intended to make it easy to look up documentation.
- //
- // If End is provided, the diagnostic is specified to apply to the range between
- // Pos and End.
- type Diagnostic struct {
- Pos token.Pos
- End token.Pos // optional
- Category string // optional
- Message string
-
- // SuggestedFixes contains suggested fixes for a diagnostic which can be used to perform
- // edits to a file that address the diagnostic.
- // TODO(matloob): Should multiple SuggestedFixes be allowed for a diagnostic?
- // Diagnostics should not contain SuggestedFixes that overlap.
- // Experimental: This API is experimental and may change in the future.
- SuggestedFixes []SuggestedFix // optional
-
- // Experimental: This API is experimental and may change in the future.
- Related []RelatedInformation // optional
- }
-
- // RelatedInformation contains information related to a diagnostic.
- // For example, a diagnostic that flags duplicated declarations of a
- // variable may include one RelatedInformation per existing
- // declaration.
- type RelatedInformation struct {
- Pos token.Pos
- End token.Pos
- Message string
- }
-
- // A SuggestedFix is a code change associated with a Diagnostic that a user can choose
- // to apply to their code. Usually the SuggestedFix is meant to fix the issue flagged
- // by the diagnostic.
- // TextEdits for a SuggestedFix should not overlap. TextEdits for a SuggestedFix
- // should not contain edits for other packages.
- // Experimental: This API is experimental and may change in the future.
- type SuggestedFix struct {
- // A description for this suggested fix to be shown to a user deciding
- // whether to accept it.
- Message string
- TextEdits []TextEdit
- }
-
- // A TextEdit represents the replacement of the code between Pos and End with the new text.
- // Each TextEdit should apply to a single file. End should not be earlier in the file than Pos.
- // Experimental: This API is experimental and may change in the future.
- type TextEdit struct {
- // For a pure insertion, End can either be set to Pos or token.NoPos.
- Pos token.Pos
- End token.Pos
- NewText []byte
- }
|