| package source |
| |
| import ( |
| "context" |
| |
| "golang.org/x/tools/go/analysis" |
| "golang.org/x/tools/internal/lsp/protocol" |
| ) |
| |
| func getCodeActions(ctx context.Context, view View, diag analysis.Diagnostic) ([]SuggestedFix, error) { |
| var fixes []SuggestedFix |
| for _, fix := range diag.SuggestedFixes { |
| var edits []protocol.TextEdit |
| for _, e := range fix.TextEdits { |
| mrng, err := posToRange(ctx, view, e.Pos, e.End) |
| if err != nil { |
| return nil, err |
| } |
| rng, err := mrng.Range() |
| if err != nil { |
| return nil, err |
| } |
| edits = append(edits, protocol.TextEdit{ |
| Range: rng, |
| NewText: string(e.NewText), |
| }) |
| } |
| fixes = append(fixes, SuggestedFix{ |
| Title: fix.Message, |
| Edits: edits, |
| }) |
| } |
| return fixes, nil |
| } |