Skip to content

Commit db48079

Browse files
last folding range not restored (microsoft#165390)
* last folding range not restored * Update src/vs/editor/contrib/folding/browser/foldingRanges.ts Co-authored-by: Tyler James Leonhardt <[email protected]> * Update src/vs/editor/contrib/folding/browser/foldingRanges.ts Co-authored-by: Tyler James Leonhardt <[email protected]> * Update src/vs/editor/contrib/folding/browser/foldingRanges.ts Co-authored-by: Tyler James Leonhardt <[email protected]> Co-authored-by: Tyler James Leonhardt <[email protected]>
1 parent 5440af4 commit db48079

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

src/vs/editor/contrib/folding/browser/foldingModel.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,12 @@ export class FoldingModel {
183183
public getMemento(): CollapseMemento | undefined {
184184
const foldedOrManualRanges = this._currentFoldedOrManualRanges();
185185
const result: ILineMemento[] = [];
186+
const maxLineNumber = this._textModel.getLineCount();
186187
for (let i = 0, limit = foldedOrManualRanges.length; i < limit; i++) {
187188
const range = foldedOrManualRanges[i];
189+
if (range.startLineNumber >= range.endLineNumber || range.startLineNumber < 1 || range.endLineNumber > maxLineNumber) {
190+
continue;
191+
}
188192
const checksum = this._getLinesChecksum(range.startLineNumber + 1, range.endLineNumber);
189193
result.push({
190194
startLineNumber: range.startLineNumber,
@@ -207,7 +211,7 @@ export class FoldingModel {
207211
const rangesToRestore: FoldRange[] = [];
208212
const maxLineNumber = this._textModel.getLineCount();
209213
for (const range of state) {
210-
if (range.startLineNumber >= range.endLineNumber || range.startLineNumber < 1 || range.endLineNumber >= maxLineNumber) {
214+
if (range.startLineNumber >= range.endLineNumber || range.startLineNumber < 1 || range.endLineNumber > maxLineNumber) {
211215
continue;
212216
}
213217
const checksum = this._getLinesChecksum(range.startLineNumber + 1, range.endLineNumber);

src/vs/editor/contrib/folding/browser/foldingRanges.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ export const enum FoldSource {
1414
recovered = 2
1515
}
1616

17+
export const foldSourceAbbr = {
18+
[FoldSource.provider]: ' ',
19+
[FoldSource.userDefined]: 'u',
20+
[FoldSource.recovered]: 'r',
21+
};
22+
1723
export interface FoldRange {
1824
startLineNumber: number;
1925
endLineNumber: number;
@@ -230,16 +236,11 @@ export class FoldingRegions {
230236
return -1;
231237
}
232238

233-
private readonly sourceAbbr = {
234-
[FoldSource.provider]: ' ',
235-
[FoldSource.userDefined]: 'u',
236-
[FoldSource.recovered]: 'r',
237-
};
238239

239240
public toString() {
240241
const res: string[] = [];
241242
for (let i = 0; i < this.length; i++) {
242-
res[i] = `[${this.sourceAbbr[this.getSource(i)]}${this.isCollapsed(i) ? '+' : '-'}] ${this.getStartLineNumber(i)}/${this.getEndLineNumber(i)}`;
243+
res[i] = `[${foldSourceAbbr[this.getSource(i)]}${this.isCollapsed(i) ? '+' : '-'}] ${this.getStartLineNumber(i)}/${this.getEndLineNumber(i)}`;
243244
}
244245
return res.join(', ');
245246
}

0 commit comments

Comments
 (0)