9 "golang.org/x/tools/go/analysis"
10 "honnef.co/go/tools/pattern"
13 type Ranger interface {
18 type Range [2]token.Pos
20 func (r Range) Pos() token.Pos { return r[0] }
21 func (r Range) End() token.Pos { return r[1] }
23 func ReplaceWithString(fset *token.FileSet, old Ranger, new string) analysis.TextEdit {
24 return analysis.TextEdit{
31 func ReplaceWithNode(fset *token.FileSet, old Ranger, new ast.Node) analysis.TextEdit {
32 buf := &bytes.Buffer{}
33 if err := format.Node(buf, fset, new); err != nil {
34 panic("internal error: " + err.Error())
36 return analysis.TextEdit{
43 func ReplaceWithPattern(pass *analysis.Pass, after pattern.Pattern, state pattern.State, node Ranger) analysis.TextEdit {
44 r := pattern.NodeToAST(after.Root, state)
45 buf := &bytes.Buffer{}
46 format.Node(buf, pass.Fset, r)
47 return analysis.TextEdit{
54 func Delete(old Ranger) analysis.TextEdit {
55 return analysis.TextEdit{
62 func Fix(msg string, edits ...analysis.TextEdit) analysis.SuggestedFix {
63 return analysis.SuggestedFix{