.gitignore added
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.1.1-0.20210319172145-bda8f5cee399 / go / analysis / diagnostic.go
1 // Copyright 2019 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package analysis
6
7 import "go/token"
8
9 // A Diagnostic is a message associated with a source location or range.
10 //
11 // An Analyzer may return a variety of diagnostics; the optional Category,
12 // which should be a constant, may be used to classify them.
13 // It is primarily intended to make it easy to look up documentation.
14 //
15 // If End is provided, the diagnostic is specified to apply to the range between
16 // Pos and End.
17 type Diagnostic struct {
18         Pos      token.Pos
19         End      token.Pos // optional
20         Category string    // optional
21         Message  string
22
23         // SuggestedFixes contains suggested fixes for a diagnostic which can be used to perform
24         // edits to a file that address the diagnostic.
25         // TODO(matloob): Should multiple SuggestedFixes be allowed for a diagnostic?
26         // Diagnostics should not contain SuggestedFixes that overlap.
27         // Experimental: This API is experimental and may change in the future.
28         SuggestedFixes []SuggestedFix // optional
29
30         // Experimental: This API is experimental and may change in the future.
31         Related []RelatedInformation // optional
32 }
33
34 // RelatedInformation contains information related to a diagnostic.
35 // For example, a diagnostic that flags duplicated declarations of a
36 // variable may include one RelatedInformation per existing
37 // declaration.
38 type RelatedInformation struct {
39         Pos     token.Pos
40         End     token.Pos
41         Message string
42 }
43
44 // A SuggestedFix is a code change associated with a Diagnostic that a user can choose
45 // to apply to their code. Usually the SuggestedFix is meant to fix the issue flagged
46 // by the diagnostic.
47 // TextEdits for a SuggestedFix should not overlap. TextEdits for a SuggestedFix
48 // should not contain edits for other packages.
49 // Experimental: This API is experimental and may change in the future.
50 type SuggestedFix struct {
51         // A description for this suggested fix to be shown to a user deciding
52         // whether to accept it.
53         Message   string
54         TextEdits []TextEdit
55 }
56
57 // A TextEdit represents the replacement of the code between Pos and End with the new text.
58 // Each TextEdit should apply to a single file. End should not be earlier in the file than Pos.
59 // Experimental: This API is experimental and may change in the future.
60 type TextEdit struct {
61         // For a pure insertion, End can either be set to Pos or token.NoPos.
62         Pos     token.Pos
63         End     token.Pos
64         NewText []byte
65 }