@@ -140,15 +140,15 @@ func computeImportEdits(ctx context.Context, pgf *parsego.File, goroot string, o
140
140
return nil , nil , err
141
141
}
142
142
143
- allFixEdits , err = computeFixEdits (pgf , options , allFixes )
143
+ allFixEdits , err = computeFixEdits (pgf . Src , options , allFixes )
144
144
if err != nil {
145
145
return nil , nil , err
146
146
}
147
147
148
148
// Apply all of the import fixes to the file.
149
149
// Add the edits for each fix to the result.
150
150
for _ , fix := range allFixes {
151
- edits , err := computeFixEdits (pgf , options , []* imports.ImportFix {fix })
151
+ edits , err := computeFixEdits (pgf . Src , options , []* imports.ImportFix {fix })
152
152
if err != nil {
153
153
return nil , nil , err
154
154
}
@@ -160,10 +160,10 @@ func computeImportEdits(ctx context.Context, pgf *parsego.File, goroot string, o
160
160
return allFixEdits , editsPerFix , nil
161
161
}
162
162
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 ) {
165
165
options := & imports.Options {
166
- LocalPrefix : snapshot . Options (). Local ,
166
+ LocalPrefix : localPrefix ,
167
167
// Defaults.
168
168
AllErrors : true ,
169
169
Comments : true ,
@@ -172,18 +172,18 @@ func ComputeOneImportFixEdits(snapshot *cache.Snapshot, pgf *parsego.File, fix *
172
172
TabIndent : true ,
173
173
TabWidth : 8 ,
174
174
}
175
- return computeFixEdits (pgf , options , [] * imports. ImportFix { fix } )
175
+ return computeFixEdits (src , options , fixes )
176
176
}
177
177
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 ) {
179
179
// trim the original data to match fixedData
180
- left , err := importPrefix (pgf . Src )
180
+ left , err := importPrefix (src )
181
181
if err != nil {
182
182
return nil , err
183
183
}
184
184
extra := ! strings .Contains (left , "\n " ) // one line may have more than imports
185
185
if extra {
186
- left = string (pgf . Src )
186
+ left = string (src )
187
187
}
188
188
if len (left ) > 0 && left [len (left )- 1 ] != '\n' {
189
189
left += "\n "
@@ -195,7 +195,7 @@ func computeFixEdits(pgf *parsego.File, options *imports.Options, fixes []*impor
195
195
// used all of origData above, use all of it here too
196
196
flags = 0
197
197
}
198
- fixedData , err := imports .ApplyFixes (fixes , "" , pgf . Src , options , flags )
198
+ fixedData , err := imports .ApplyFixes (fixes , "" , src , options , flags )
199
199
if err != nil {
200
200
return nil , err
201
201
}
0 commit comments