Merge from vscode 64980ea1f3f532c82bb6c28d27bba9ef2c5b4463 (#7206)

* Merge from vscode 64980ea1f3f532c82bb6c28d27bba9ef2c5b4463

* fix config changes

* fix strictnull checks
This commit is contained in:
Anthony Dresser
2019-09-15 22:38:26 -07:00
committed by GitHub
parent fa6c52699e
commit ea0f9e6ce9
1226 changed files with 21541 additions and 17633 deletions

View File

@@ -18,7 +18,7 @@ import { FoldingModel, setCollapseStateAtLevel, CollapseMemento, setCollapseStat
import { FoldingDecorationProvider } from './foldingDecorations';
import { FoldingRegions, FoldingRegion } from './foldingRanges';
import { EditorContextKeys } from 'vs/editor/common/editorContextKeys';
import { IConfigurationChangedEvent } from 'vs/editor/common/config/editorOptions';
import { ConfigurationChangedEvent, EditorOption } from 'vs/editor/common/config/editorOptions';
import { IMarginData, IEmptyContentData } from 'vs/editor/browser/controller/mouseTarget';
import { HiddenRangeModel } from 'vs/editor/contrib/folding/hiddenRangeModel';
import { IRange } from 'vs/editor/common/core/range';
@@ -87,9 +87,10 @@ export class FoldingController extends Disposable implements IEditorContribution
) {
super();
this.editor = editor;
this._isEnabled = this.editor.getConfiguration().contribInfo.folding;
this._autoHideFoldingControls = this.editor.getConfiguration().contribInfo.showFoldingControls === 'mouseover';
this._useFoldingProviders = this.editor.getConfiguration().contribInfo.foldingStrategy !== 'indentation';
const options = this.editor.getOptions();
this._isEnabled = options.get(EditorOption.folding);
this._autoHideFoldingControls = options.get(EditorOption.showFoldingControls) === 'mouseover';
this._useFoldingProviders = options.get(EditorOption.foldingStrategy) !== 'indentation';
this.foldingModel = null;
this.hiddenRangeModel = null;
@@ -108,22 +109,23 @@ export class FoldingController extends Disposable implements IEditorContribution
this._register(this.editor.onDidChangeModel(() => this.onModelChanged()));
this._register(this.editor.onDidChangeConfiguration((e: IConfigurationChangedEvent) => {
if (e.contribInfo) {
this._register(this.editor.onDidChangeConfiguration((e: ConfigurationChangedEvent) => {
if (e.hasChanged(EditorOption.folding) || e.hasChanged(EditorOption.showFoldingControls) || e.hasChanged(EditorOption.foldingStrategy)) {
let oldIsEnabled = this._isEnabled;
this._isEnabled = this.editor.getConfiguration().contribInfo.folding;
const options = this.editor.getOptions();
this._isEnabled = options.get(EditorOption.folding);
this.foldingEnabled.set(this._isEnabled);
if (oldIsEnabled !== this._isEnabled) {
this.onModelChanged();
}
let oldShowFoldingControls = this._autoHideFoldingControls;
this._autoHideFoldingControls = this.editor.getConfiguration().contribInfo.showFoldingControls === 'mouseover';
this._autoHideFoldingControls = options.get(EditorOption.showFoldingControls) === 'mouseover';
if (oldShowFoldingControls !== this._autoHideFoldingControls) {
this.foldingDecorationProvider.autoHideFoldingControls = this._autoHideFoldingControls;
this.onModelContentChanged();
}
let oldUseFoldingProviders = this._useFoldingProviders;
this._useFoldingProviders = this.editor.getConfiguration().contribInfo.foldingStrategy !== 'indentation';
this._useFoldingProviders = options.get(EditorOption.foldingStrategy) !== 'indentation';
if (oldUseFoldingProviders !== this._useFoldingProviders) {
this.onFoldingStrategyChanged();
}