Skip to content

Commit 6368677

Browse files
findleyrgopherbot
authored andcommitted
gopls/internal/golang: strength reduce ComputeImportFixEdits
Simplify the API of ComputeOneImportFixEdits (renamed to ComputeImportFixEdits), so that it can be used in more scenarios. Change-Id: I4c4adb5f38947074dfb005e0c745d1a623bd3fd8 Reviewed-on: https://go-review.googlesource.com/c/tools/+/626280 LUCI-TryBot-Result: Go LUCI <[email protected]> Reviewed-by: Hongxiang Jiang <[email protected]> Auto-Submit: Robert Findley <[email protected]>
1 parent 777f155 commit 6368677

File tree

4 files changed

+13
-13
lines changed

4 files changed

+13
-13
lines changed

gopls/internal/golang/add_import.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func AddImport(ctx context.Context, snapshot *cache.Snapshot, fh file.Handle, im
2020
if err != nil {
2121
return nil, err
2222
}
23-
return ComputeOneImportFixEdits(snapshot, pgf, &imports.ImportFix{
23+
return ComputeImportFixEdits(snapshot.Options().Local, pgf.Src, &imports.ImportFix{
2424
StmtInfo: imports.ImportInfo{
2525
ImportPath: importPath,
2626
},

gopls/internal/golang/completion/format.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ func (c *completer) importEdits(imp *importInfo) ([]protocol.TextEdit, error) {
299299
return nil, err
300300
}
301301

302-
return golang.ComputeOneImportFixEdits(c.snapshot, pgf, &imports.ImportFix{
302+
return golang.ComputeImportFixEdits(c.snapshot.Options().Local, pgf.Src, &imports.ImportFix{
303303
StmtInfo: imports.ImportInfo{
304304
ImportPath: imp.importPath,
305305
Name: imp.name,

gopls/internal/golang/fix.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ func suggestedFixToDocumentChange(ctx context.Context, snapshot *cache.Snapshot,
188188
// addEmbedImport adds a missing embed "embed" import with blank name.
189189
func addEmbedImport(ctx context.Context, snapshot *cache.Snapshot, pkg *cache.Package, pgf *parsego.File, _, _ token.Pos) (*token.FileSet, *analysis.SuggestedFix, error) {
190190
// Like golang.AddImport, but with _ as Name and using our pgf.
191-
protoEdits, err := ComputeOneImportFixEdits(snapshot, pgf, &imports.ImportFix{
191+
protoEdits, err := ComputeImportFixEdits(snapshot.Options().Local, pgf.Src, &imports.ImportFix{
192192
StmtInfo: imports.ImportInfo{
193193
ImportPath: "embed",
194194
Name: "_",

gopls/internal/golang/format.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -140,15 +140,15 @@ func computeImportEdits(ctx context.Context, pgf *parsego.File, goroot string, o
140140
return nil, nil, err
141141
}
142142

143-
allFixEdits, err = computeFixEdits(pgf, options, allFixes)
143+
allFixEdits, err = computeFixEdits(pgf.Src, options, allFixes)
144144
if err != nil {
145145
return nil, nil, err
146146
}
147147

148148
// Apply all of the import fixes to the file.
149149
// Add the edits for each fix to the result.
150150
for _, fix := range allFixes {
151-
edits, err := computeFixEdits(pgf, options, []*imports.ImportFix{fix})
151+
edits, err := computeFixEdits(pgf.Src, options, []*imports.ImportFix{fix})
152152
if err != nil {
153153
return nil, nil, err
154154
}
@@ -160,10 +160,10 @@ func computeImportEdits(ctx context.Context, pgf *parsego.File, goroot string, o
160160
return allFixEdits, editsPerFix, nil
161161
}
162162

163-
// ComputeOneImportFixEdits returns text edits for a single import fix.
164-
func ComputeOneImportFixEdits(snapshot *cache.Snapshot, pgf *parsego.File, fix *imports.ImportFix) ([]protocol.TextEdit, error) {
163+
// ComputeImportFixEdits returns text edits for a single import fix.
164+
func ComputeImportFixEdits(localPrefix string, src []byte, fixes ...*imports.ImportFix) ([]protocol.TextEdit, error) {
165165
options := &imports.Options{
166-
LocalPrefix: snapshot.Options().Local,
166+
LocalPrefix: localPrefix,
167167
// Defaults.
168168
AllErrors: true,
169169
Comments: true,
@@ -172,18 +172,18 @@ func ComputeOneImportFixEdits(snapshot *cache.Snapshot, pgf *parsego.File, fix *
172172
TabIndent: true,
173173
TabWidth: 8,
174174
}
175-
return computeFixEdits(pgf, options, []*imports.ImportFix{fix})
175+
return computeFixEdits(src, options, fixes)
176176
}
177177

178-
func computeFixEdits(pgf *parsego.File, options *imports.Options, fixes []*imports.ImportFix) ([]protocol.TextEdit, error) {
178+
func computeFixEdits(src []byte, options *imports.Options, fixes []*imports.ImportFix) ([]protocol.TextEdit, error) {
179179
// trim the original data to match fixedData
180-
left, err := importPrefix(pgf.Src)
180+
left, err := importPrefix(src)
181181
if err != nil {
182182
return nil, err
183183
}
184184
extra := !strings.Contains(left, "\n") // one line may have more than imports
185185
if extra {
186-
left = string(pgf.Src)
186+
left = string(src)
187187
}
188188
if len(left) > 0 && left[len(left)-1] != '\n' {
189189
left += "\n"
@@ -195,7 +195,7 @@ func computeFixEdits(pgf *parsego.File, options *imports.Options, fixes []*impor
195195
// used all of origData above, use all of it here too
196196
flags = 0
197197
}
198-
fixedData, err := imports.ApplyFixes(fixes, "", pgf.Src, options, flags)
198+
fixedData, err := imports.ApplyFixes(fixes, "", src, options, flags)
199199
if err != nil {
200200
return nil, err
201201
}

0 commit comments

Comments
 (0)