Skip to content

Commit 7a6092b

Browse files
committed
folding: handle view states without provider
1 parent 7176f36 commit 7a6092b

4 files changed

Lines changed: 12 additions & 6 deletions

File tree

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ import { LanguageConfigurationRegistry } from 'vs/editor/common/modes/languageCo
2929
import { IndentRangeProvider } from 'vs/editor/contrib/folding/indentRangeProvider';
3030
import { IPosition } from 'vs/editor/common/core/position';
3131
import { FoldingRangeProviderRegistry, FoldingRangeKind } from 'vs/editor/common/modes';
32-
import { SyntaxRangeProvider } from './syntaxRangeProvider';
32+
import { SyntaxRangeProvider, ID_SYNTAX_PROVIDER } from './syntaxRangeProvider';
3333
import { CancellationToken } from 'vs/base/common/cancellation';
34-
import { InitializingRangeProvider } from 'vs/editor/contrib/folding/intializingRangeProvider';
34+
import { InitializingRangeProvider, ID_INIT_PROVIDER } from 'vs/editor/contrib/folding/intializingRangeProvider';
3535

3636
export const ID = 'editor.contrib.folding';
3737

@@ -155,7 +155,7 @@ export class FoldingController implements IEditorContribution {
155155
return;
156156
}
157157

158-
if (state.provider !== 'indent') {
158+
if (state.provider === ID_SYNTAX_PROVIDER || state.provider === ID_INIT_PROVIDER) {
159159
this.foldingStateMemento = state;
160160
}
161161

src/vs/editor/contrib/folding/indentRangeProvider.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ import { CancellationToken } from 'vs/base/common/cancellation';
1616

1717
const MAX_FOLDING_REGIONS_FOR_INDENT_LIMIT = 5000;
1818

19+
export const ID_INDENT_PROVIDER = 'indent';
20+
1921
export class IndentRangeProvider implements RangeProvider {
20-
readonly id = 'indent';
22+
readonly id = ID_INDENT_PROVIDER;
2123

2224
readonly decorations;
2325

src/vs/editor/contrib/folding/intializingRangeProvider.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ import { TPromise } from 'vs/base/common/winjs.base';
1212
import { CancellationToken } from 'vs/base/common/cancellation';
1313
import { IFoldingRangeData, sanitizeRanges } from 'vs/editor/contrib/folding/syntaxRangeProvider';
1414

15+
export const ID_INIT_PROVIDER = 'init';
16+
1517
export class InitializingRangeProvider implements RangeProvider {
16-
readonly id = 'init';
18+
readonly id = ID_INIT_PROVIDER;
1719

1820
private decorationIds: string[] | undefined;
1921
private timeout: number;

src/vs/editor/contrib/folding/syntaxRangeProvider.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ export interface IFoldingRangeData extends FoldingRange {
2323
const foldingContext: FoldingContext = {
2424
};
2525

26+
export const ID_SYNTAX_PROVIDER = 'syntax';
27+
2628
export class SyntaxRangeProvider implements RangeProvider {
2729

28-
readonly id = 'syntax';
30+
readonly id = ID_SYNTAX_PROVIDER;
2931

3032
constructor(private editorModel: ITextModel, private providers: FoldingRangeProvider[], private limit = MAX_FOLDING_REGIONS) {
3133
}

0 commit comments

Comments
 (0)