diff --git a/lib/ace/edit_session/bracket_match.js b/lib/ace/edit_session/bracket_match.js index 83c8f572..4b95c1cd 100644 --- a/lib/ace/edit_session/bracket_match.js +++ b/lib/ace/edit_session/bracket_match.js @@ -194,7 +194,7 @@ function BracketMatch() { return null; }; - this.$findClosingBracket = function(bracket, position, typeRe, allowBlankLine) { + this.$findClosingBracket = function(bracket, position, typeRe) { var closingBracket = this.$brackets[bracket]; var depth = 1; @@ -239,12 +239,6 @@ function BracketMatch() { // whose type matches typeRe do { token = iterator.stepForward(); - if (allowBlankLine) { - // if you've reached the doc end, or, you match a new content line - if (token === null || token.type == "string") { - return {row: iterator.getCurrentTokenRow() + (token === null ? 1 : -1), column: 0}; - } - } } while (token && !typeRe.test(token.type)); if (token == null) diff --git a/lib/ace/mode/c9search.js b/lib/ace/mode/c9search.js index cff2b22a..37a89aab 100644 --- a/lib/ace/mode/c9search.js +++ b/lib/ace/mode/c9search.js @@ -56,18 +56,6 @@ oop.inherits(Mode, TextMode); this.getNextLineIndent = function(state, line, tab) { var indent = this.$getIndent(line); - - // ignore braces in comments - var tokens = this.$tokenizer.getLineTokens(line, state).tokens; - if (tokens.length && tokens[tokens.length-1].type == "comment") { - return indent; - } - - var match = line.match(/^.*\{\s*$/); - if (match) { - indent += tab; - } - return indent; }; diff --git a/lib/ace/mode/folding/c9search.js b/lib/ace/mode/folding/c9search.js index 406222b6..056f731d 100644 --- a/lib/ace/mode/folding/c9search.js +++ b/lib/ace/mode/folding/c9search.js @@ -48,46 +48,32 @@ oop.inherits(FoldMode, BaseFoldMode); (function() { - this.foldingStartMarker = /[a-zA-Z](:)\s*$/; - this.foldingStopMarker = /^(\s*)$/; + this.foldingStartMarker = /^(\w.*\:|Searching for.*)$/; + this.foldingStopMarker = /^(\s+|Found.*)$/; this.getFoldWidgetRange = function(session, foldStyle, row) { var line = session.getLine(row); - var match = line.match(this.foldingStartMarker); - if (match) { - var i = match.index; + var level1 = /^(Found.*|Searching for.*)$/; + var level2 = /^(\w.*\:|\s+)$/; + var re = level1.test(line) ? level1 : level2; - if (match[1]) - return this.openingBracketBlock(session, match[1], row, i, false, true); - - var range = session.getCommentFoldRange(row, i + match[0].length); - range.end.column -= 2; - return range; - } - - if (foldStyle !== "markbeginend") - return; - - var match = line.match(this.foldingStopMarker); - if (match) { - var i = match.index + match[0].length; - - if (match[2]) { - var range = session.getCommentFoldRange(row, i); - range.end.column -= 2; - return range; + if (this.foldingStartMarker.test(line)) { + for (var i = row + 1, l = session.getLength(); i < l; i++) { + if (re.test(session.getLine(i))) + break; } - var end = {row: row, column: i}; - var start = session.$findOpeningBracket(match[1], end); - - if (!start) - return; + return new Range(row, line.length, i, 0); + } - start.column++; - end.column--; + if (this.foldingStopMarker.test(line)) { + for (var i = row - 1; i >= 0; i--) { + line = session.getLine(i); + if (re.test(line)) + break; + } - return Range.fromPoints(start, end); + return new Range(i, line.length, row, 0); } }; diff --git a/lib/ace/mode/folding/fold_mode.js b/lib/ace/mode/folding/fold_mode.js index 849526c7..0e7aaa52 100644 --- a/lib/ace/mode/folding/fold_mode.js +++ b/lib/ace/mode/folding/fold_mode.js @@ -91,9 +91,9 @@ var FoldMode = exports.FoldMode = function() {}; } }; - this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + this.openingBracketBlock = function(session, bracket, row, column, typeRe) { var start = {row: row, column: column + 1}; - var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + var end = session.$findClosingBracket(bracket, start, typeRe); if (!end) return;