diff --git a/src/vs/editor/contrib/folding/folding.ts b/src/vs/editor/contrib/folding/folding.ts index 459f83d973c..a1b24cfbf26 100644 --- a/src/vs/editor/contrib/folding/folding.ts +++ b/src/vs/editor/contrib/folding/folding.ts @@ -238,14 +238,18 @@ export class FoldingController implements IEditorContribution { this.getFoldingModel().then(foldingModel => { // null is returned if folding got disabled in the meantime if (foldingModel) { let selections = this.editor.getSelections(); - if (selections) { + if (selections && selections.length > 0) { + let toToggle = []; for (let selection of selections) { let lineNumber = selection.selectionStartLineNumber; if (this.hiddenRangeModel.isHidden(lineNumber)) { - let toToggle = foldingModel.getAllRegionsAtLine(lineNumber, r => r.isCollapsed && lineNumber > r.startLineNumber); - foldingModel.toggleCollapseState(toToggle); + toToggle.push(...foldingModel.getAllRegionsAtLine(lineNumber, r => r.isCollapsed && lineNumber > r.startLineNumber)); } } + if (toToggle.length) { + foldingModel.toggleCollapseState(toToggle); + this.reveal(selections[0].getPosition()); + } } } });