|
24 | 24 | function getRange(allowFolded) { |
25 | 25 | var range = finder(cm, pos); |
26 | 26 | if (!range || range.to.line - range.from.line < minSize) return null; |
| 27 | + if (force === "fold") return range; |
| 28 | + |
27 | 29 | var marks = cm.findMarksAt(range.from); |
28 | 30 | for (var i = 0; i < marks.length; ++i) { |
29 | | - if (marks[i].__isFold && force !== "fold") { |
| 31 | + if (marks[i].__isFold) { |
30 | 32 | if (!allowFolded) return null; |
31 | 33 | range.cleared = true; |
32 | 34 | marks[i].clear(); |
|
99 | 101 | cm.foldCode(cm.getCursor(), null, "fold"); |
100 | 102 | }; |
101 | 103 | CodeMirror.commands.unfold = function(cm) { |
102 | | - cm.foldCode(cm.getCursor(), null, "unfold"); |
| 104 | + cm.foldCode(cm.getCursor(), { scanUp: false }, "unfold"); |
103 | 105 | }; |
104 | 106 | CodeMirror.commands.foldAll = function(cm) { |
105 | 107 | cm.operation(function() { |
106 | 108 | for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++) |
107 | | - cm.foldCode(CodeMirror.Pos(i, 0), null, "fold"); |
| 109 | + cm.foldCode(CodeMirror.Pos(i, 0), { scanUp: false }, "fold"); |
108 | 110 | }); |
109 | 111 | }; |
110 | 112 | CodeMirror.commands.unfoldAll = function(cm) { |
111 | 113 | cm.operation(function() { |
112 | 114 | for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++) |
113 | | - cm.foldCode(CodeMirror.Pos(i, 0), null, "unfold"); |
| 115 | + cm.foldCode(CodeMirror.Pos(i, 0), { scanUp: false }, "unfold"); |
114 | 116 | }); |
115 | 117 | }; |
116 | 118 |
|
|
0 commit comments