From 7a6092b2c1c13219be0890bf4bc52ab24f2bcccf Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Mon, 11 Jun 2018 12:26:54 +0200 Subject: [PATCH] folding: handle view states without provider --- src/vs/editor/contrib/folding/folding.ts | 6 +++--- src/vs/editor/contrib/folding/indentRangeProvider.ts | 4 +++- src/vs/editor/contrib/folding/intializingRangeProvider.ts | 4 +++- src/vs/editor/contrib/folding/syntaxRangeProvider.ts | 4 +++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/vs/editor/contrib/folding/folding.ts b/src/vs/editor/contrib/folding/folding.ts index d614610198b..68151b424c8 100644 --- a/src/vs/editor/contrib/folding/folding.ts +++ b/src/vs/editor/contrib/folding/folding.ts @@ -29,9 +29,9 @@ import { LanguageConfigurationRegistry } from 'vs/editor/common/modes/languageCo import { IndentRangeProvider } from 'vs/editor/contrib/folding/indentRangeProvider'; import { IPosition } from 'vs/editor/common/core/position'; import { FoldingRangeProviderRegistry, FoldingRangeKind } from 'vs/editor/common/modes'; -import { SyntaxRangeProvider } from './syntaxRangeProvider'; +import { SyntaxRangeProvider, ID_SYNTAX_PROVIDER } from './syntaxRangeProvider'; import { CancellationToken } from 'vs/base/common/cancellation'; -import { InitializingRangeProvider } from 'vs/editor/contrib/folding/intializingRangeProvider'; +import { InitializingRangeProvider, ID_INIT_PROVIDER } from 'vs/editor/contrib/folding/intializingRangeProvider'; export const ID = 'editor.contrib.folding'; @@ -155,7 +155,7 @@ export class FoldingController implements IEditorContribution { return; } - if (state.provider !== 'indent') { + if (state.provider === ID_SYNTAX_PROVIDER || state.provider === ID_INIT_PROVIDER) { this.foldingStateMemento = state; } diff --git a/src/vs/editor/contrib/folding/indentRangeProvider.ts b/src/vs/editor/contrib/folding/indentRangeProvider.ts index d897e5193da..727bcd29de1 100644 --- a/src/vs/editor/contrib/folding/indentRangeProvider.ts +++ b/src/vs/editor/contrib/folding/indentRangeProvider.ts @@ -16,8 +16,10 @@ import { CancellationToken } from 'vs/base/common/cancellation'; const MAX_FOLDING_REGIONS_FOR_INDENT_LIMIT = 5000; +export const ID_INDENT_PROVIDER = 'indent'; + export class IndentRangeProvider implements RangeProvider { - readonly id = 'indent'; + readonly id = ID_INDENT_PROVIDER; readonly decorations; diff --git a/src/vs/editor/contrib/folding/intializingRangeProvider.ts b/src/vs/editor/contrib/folding/intializingRangeProvider.ts index 4e7e024e80d..bd5fa4ae50b 100644 --- a/src/vs/editor/contrib/folding/intializingRangeProvider.ts +++ b/src/vs/editor/contrib/folding/intializingRangeProvider.ts @@ -12,8 +12,10 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { CancellationToken } from 'vs/base/common/cancellation'; import { IFoldingRangeData, sanitizeRanges } from 'vs/editor/contrib/folding/syntaxRangeProvider'; +export const ID_INIT_PROVIDER = 'init'; + export class InitializingRangeProvider implements RangeProvider { - readonly id = 'init'; + readonly id = ID_INIT_PROVIDER; private decorationIds: string[] | undefined; private timeout: number; diff --git a/src/vs/editor/contrib/folding/syntaxRangeProvider.ts b/src/vs/editor/contrib/folding/syntaxRangeProvider.ts index 916fc5bfb65..e52d226638a 100644 --- a/src/vs/editor/contrib/folding/syntaxRangeProvider.ts +++ b/src/vs/editor/contrib/folding/syntaxRangeProvider.ts @@ -23,9 +23,11 @@ export interface IFoldingRangeData extends FoldingRange { const foldingContext: FoldingContext = { }; +export const ID_SYNTAX_PROVIDER = 'syntax'; + export class SyntaxRangeProvider implements RangeProvider { - readonly id = 'syntax'; + readonly id = ID_SYNTAX_PROVIDER; constructor(private editorModel: ITextModel, private providers: FoldingRangeProvider[], private limit = MAX_FOLDING_REGIONS) { } -- GitLab