Skip to content

Commit 2d34614

Browse files
authored
fix multi range formatting (microsoft#180955)
fixes microsoft#178825
1 parent ed603a1 commit 2d34614

File tree

1 file changed

+20
-19
lines changed
  • src/vs/editor/contrib/format/browser

1 file changed

+20
-19
lines changed

src/vs/editor/contrib/format/browser/format.ts

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -228,32 +228,33 @@ export async function formatDocumentRangesWithProvider(
228228
logService.trace(`[format][provideDocumentRangeFormattingEdits] (response)`, provider.extensionId?.value, result);
229229
rawEditsList.push(result);
230230
} else {
231+
231232
for (const range of ranges) {
232233
if (cts.token.isCancellationRequested) {
233234
return true;
234235
}
235236
rawEditsList.push(await computeEdits(range));
236237
}
237-
}
238238

239-
for (let i = 0; i < ranges.length; ++i) {
240-
for (let j = i + 1; j < ranges.length; ++j) {
241-
if (cts.token.isCancellationRequested) {
242-
return true;
243-
}
244-
if (hasIntersectingEdit(rawEditsList[i], rawEditsList[j])) {
245-
// Merge ranges i and j into a single range, recompute the associated edits
246-
const mergedRange = Range.plusRange(ranges[i], ranges[j]);
247-
const edits = await computeEdits(mergedRange);
248-
ranges.splice(j, 1);
249-
ranges.splice(i, 1);
250-
ranges.push(mergedRange);
251-
rawEditsList.splice(j, 1);
252-
rawEditsList.splice(i, 1);
253-
rawEditsList.push(edits);
254-
// Restart scanning
255-
i = 0;
256-
j = 0;
239+
for (let i = 0; i < ranges.length; ++i) {
240+
for (let j = i + 1; j < ranges.length; ++j) {
241+
if (cts.token.isCancellationRequested) {
242+
return true;
243+
}
244+
if (hasIntersectingEdit(rawEditsList[i], rawEditsList[j])) {
245+
// Merge ranges i and j into a single range, recompute the associated edits
246+
const mergedRange = Range.plusRange(ranges[i], ranges[j]);
247+
const edits = await computeEdits(mergedRange);
248+
ranges.splice(j, 1);
249+
ranges.splice(i, 1);
250+
ranges.push(mergedRange);
251+
rawEditsList.splice(j, 1);
252+
rawEditsList.splice(i, 1);
253+
rawEditsList.push(edits);
254+
// Restart scanning
255+
i = 0;
256+
j = 0;
257+
}
257258
}
258259
}
259260
}

0 commit comments

Comments
 (0)