diff --git a/lib/ace/mode/folding/c9search.js b/lib/ace/mode/folding/c9search.js index 056f731d..2c9828de 100644 --- a/lib/ace/mode/folding/c9search.js +++ b/lib/ace/mode/folding/c9search.js @@ -54,7 +54,7 @@ oop.inherits(FoldMode, BaseFoldMode); this.getFoldWidgetRange = function(session, foldStyle, row) { var line = session.getLine(row); var level1 = /^(Found.*|Searching for.*)$/; - var level2 = /^(\w.*\:|\s+)$/; + var level2 = /^(\w.*\:|\s*)$/; var re = level1.test(line) ? level1 : level2; if (this.foldingStartMarker.test(line)) { diff --git a/lib/ace/mode/folding/fold_mode.js b/lib/ace/mode/folding/fold_mode.js index 0e7aaa52..9dcbda13 100644 --- a/lib/ace/mode/folding/fold_mode.js +++ b/lib/ace/mode/folding/fold_mode.js @@ -101,7 +101,7 @@ var FoldMode = exports.FoldMode = function() {}; if (fw == null) fw = this.getFoldWidget(session, end.row); - if (fw == "start") { + if (fw == "start" && end.row > start.row) { end.row --; end.column = session.getLine(end.row).length; } diff --git a/lib/ace/mode/folding/pythonic.js b/lib/ace/mode/folding/pythonic.js index 90ab2aad..529cc797 100644 --- a/lib/ace/mode/folding/pythonic.js +++ b/lib/ace/mode/folding/pythonic.js @@ -42,7 +42,7 @@ var oop = require("../../lib/oop"); var BaseFoldMode = require("./fold_mode").FoldMode; var FoldMode = exports.FoldMode = function(markers) { - this.foldingStartMarker = new RegExp("(?:([\\[{])|(" + markers + "))(?:\\s*)(?:#.*)?$"); + this.foldingStartMarker = new RegExp("([\\[{])(?:\\s*)$|(" + markers + ")(?:\\s*)(?:#.*)?$"); }; oop.inherits(FoldMode, BaseFoldMode); diff --git a/lib/ace/mode/folding/pythonic_test.js b/lib/ace/mode/folding/pythonic_test.js index 6cfb1f77..ca853715 100644 --- a/lib/ace/mode/folding/pythonic_test.js +++ b/lib/ace/mode/folding/pythonic_test.js @@ -49,11 +49,12 @@ module.exports = { "test: bracket folding": function() { var session = new EditSession([ - '[ #-', + '[ ', 'stuff', ']', '[ ', - '{ ' + '{ ', + '[ #-', ]); var mode = new PythonMode(); @@ -65,9 +66,11 @@ module.exports = { assert.equal(session.getFoldWidget(2), ""); assert.equal(session.getFoldWidget(3), "start"); assert.equal(session.getFoldWidget(4), "start"); + assert.equal(session.getFoldWidget(5), ""); assert.range(session.getFoldWidgetRange(0), 0, 1, 2, 0); assert.equal(session.getFoldWidgetRange(3), null); + assert.equal(session.getFoldWidgetRange(5), null); }, "test: indentation folding": function() {