File tree Expand file tree Collapse file tree 2 files changed +12
-7
lines changed
src/vs/editor/contrib/folding/browser Expand file tree Collapse file tree 2 files changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -183,8 +183,12 @@ export class FoldingModel {
183
183
public getMemento ( ) : CollapseMemento | undefined {
184
184
const foldedOrManualRanges = this . _currentFoldedOrManualRanges ( ) ;
185
185
const result : ILineMemento [ ] = [ ] ;
186
+ const maxLineNumber = this . _textModel . getLineCount ( ) ;
186
187
for ( let i = 0 , limit = foldedOrManualRanges . length ; i < limit ; i ++ ) {
187
188
const range = foldedOrManualRanges [ i ] ;
189
+ if ( range . startLineNumber >= range . endLineNumber || range . startLineNumber < 1 || range . endLineNumber > maxLineNumber ) {
190
+ continue ;
191
+ }
188
192
const checksum = this . _getLinesChecksum ( range . startLineNumber + 1 , range . endLineNumber ) ;
189
193
result . push ( {
190
194
startLineNumber : range . startLineNumber ,
@@ -207,7 +211,7 @@ export class FoldingModel {
207
211
const rangesToRestore : FoldRange [ ] = [ ] ;
208
212
const maxLineNumber = this . _textModel . getLineCount ( ) ;
209
213
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 ) {
211
215
continue ;
212
216
}
213
217
const checksum = this . _getLinesChecksum ( range . startLineNumber + 1 , range . endLineNumber ) ;
Original file line number Diff line number Diff line change @@ -14,6 +14,12 @@ export const enum FoldSource {
14
14
recovered = 2
15
15
}
16
16
17
+ export const foldSourceAbbr = {
18
+ [ FoldSource . provider ] : ' ' ,
19
+ [ FoldSource . userDefined ] : 'u' ,
20
+ [ FoldSource . recovered ] : 'r' ,
21
+ } ;
22
+
17
23
export interface FoldRange {
18
24
startLineNumber : number ;
19
25
endLineNumber : number ;
@@ -230,16 +236,11 @@ export class FoldingRegions {
230
236
return - 1 ;
231
237
}
232
238
233
- private readonly sourceAbbr = {
234
- [ FoldSource . provider ] : ' ' ,
235
- [ FoldSource . userDefined ] : 'u' ,
236
- [ FoldSource . recovered ] : 'r' ,
237
- } ;
238
239
239
240
public toString ( ) {
240
241
const res : string [ ] = [ ] ;
241
242
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 ) } ` ;
243
244
}
244
245
return res . join ( ', ' ) ;
245
246
}
You can’t perform that action at this time.
0 commit comments