From cbc51901638022ac712563f581ac7cdc85cf7987 Mon Sep 17 00:00:00 2001 From: Patrick Oladimeji Date: Thu, 9 Jul 2015 22:06:27 +0100 Subject: [PATCH] addresses #11356 collapsing and expanding fold ranges in xml or html elements where the starttag spans more than one line now works correctly. --- .../default/CodeFolding/foldhelpers/foldcode.js | 6 +++--- .../default/CodeFolding/foldhelpers/foldgutter.js | 12 ++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/extensions/default/CodeFolding/foldhelpers/foldcode.js b/src/extensions/default/CodeFolding/foldhelpers/foldcode.js index 106efe38ab8..332756bb7d6 100644 --- a/src/extensions/default/CodeFolding/foldhelpers/foldcode.js +++ b/src/extensions/default/CodeFolding/foldhelpers/foldcode.js @@ -90,8 +90,8 @@ define(function (require, exports, module) { }); textRange.on("clear", function (from, to) { - delete cm._lineFolds[from.line]; - CodeMirror.signal(cm, "unfold", cm, from, to); + delete cm._lineFolds[pos.line]; + CodeMirror.signal(cm, "unfold", cm, from, to, pos.line); }); if (force === "fold") { @@ -101,7 +101,7 @@ define(function (require, exports, module) { delete cm._lineFolds[pos.line]; } - CodeMirror.signal(cm, force, cm, range.from, range.to); + CodeMirror.signal(cm, force, cm, range.from, range.to, pos.line); return range; } diff --git a/src/extensions/default/CodeFolding/foldhelpers/foldgutter.js b/src/extensions/default/CodeFolding/foldhelpers/foldgutter.js index ba7f5d92947..52ee263084e 100644 --- a/src/extensions/default/CodeFolding/foldhelpers/foldgutter.js +++ b/src/extensions/default/CodeFolding/foldhelpers/foldgutter.js @@ -322,9 +322,11 @@ define(function (require, exports, module) { * @param {!CodeMirror} cm the CodeMirror instance for the active editor * @param {!Object} from the ch and line position that designates the start of the region * @param {!Object} to the ch and line position that designates the end of the region + * @param {?Number} gutterLineNumber the gutter line number that was clicked to signal the fold event */ - function onFold(cm, from, to) { - var state = cm.state.foldGutter, line = from.line; + function onFold(cm, from, to, gutterLineNumber) { + var state = cm.state.foldGutter, + line = isNaN(gutterLineNumber) ? from.line : gutterLineNumber; if (line >= state.from && line < state.to) { updateFoldInfo(cm, line, line + 1); } @@ -335,9 +337,11 @@ define(function (require, exports, module) { * @param {!CodeMirror} cm the CodeMirror instance for the active editor * @param {!{line:number, ch:number}} from the ch and line position that designates the start of the region * @param {!{line:number, ch:number}} to the ch and line position that designates the end of the region + * @param {?Number} gutterLineNumber the gutter line number that was clicked to signal the fold event */ - function onUnFold(cm, from, to) { - var state = cm.state.foldGutter, line = from.line; + function onUnFold(cm, from, to, gutterLineNumber) { + var state = cm.state.foldGutter, + line = isNaN(gutterLineNumber) ? from.line : gutterLineNumber; var vp = cm.getViewport(); if (line >= state.from && line < state.to) { updateFoldInfo(cm, line, Math.min(vp.to, to.line));