github.com/bir3/gocompiler@v0.9.2202/src/xvendor/golang.org/x/tools/go/analysis/diagnostic.go (about) 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 "github.com/bir3/gocompiler/src/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 // URL is the optional location of a web page that provides 24 // additional documentation for this diagnostic. 25 // 26 // If URL is empty but a Category is specified, then the 27 // Analysis driver should treat the URL as "#"+Category. 28 // 29 // The URL may be relative. If so, the base URL is that of the 30 // Analyzer that produced the diagnostic; 31 // see https://pkg.go.dev/net/url#URL.ResolveReference. 32 URL string 33 34 // SuggestedFixes contains suggested fixes for a diagnostic 35 // which can be used to perform edits to a file that address 36 // the diagnostic. 37 // 38 // Diagnostics should not contain SuggestedFixes that overlap. 39 SuggestedFixes []SuggestedFix // optional 40 41 Related []RelatedInformation // optional 42 } 43 44 // RelatedInformation contains information related to a diagnostic. 45 // For example, a diagnostic that flags duplicated declarations of a 46 // variable may include one RelatedInformation per existing 47 // declaration. 48 type RelatedInformation struct { 49 Pos token.Pos 50 End token.Pos // optional 51 Message string 52 } 53 54 // A SuggestedFix is a code change associated with a Diagnostic that a 55 // user can choose to apply to their code. Usually the SuggestedFix is 56 // meant to fix the issue flagged by the diagnostic. 57 // 58 // TextEdits for a SuggestedFix should not overlap, 59 // nor contain edits for other packages. 60 type SuggestedFix struct { 61 // A description for this suggested fix to be shown to a user deciding 62 // whether to accept it. 63 Message string 64 TextEdits []TextEdit 65 } 66 67 // A TextEdit represents the replacement of the code between Pos and End with the new text. 68 // Each TextEdit should apply to a single file. End should not be earlier in the file than Pos. 69 type TextEdit struct { 70 // For a pure insertion, End can either be set to Pos or token.NoPos. 71 Pos token.Pos 72 End token.Pos 73 NewText []byte 74 }