coffescript folding improvements (fixes #582)
This commit is contained in:
parent
512a82015f
commit
a673864f38
3 changed files with 7 additions and 4 deletions
|
|
@ -49,7 +49,7 @@ var oop = require("../lib/oop");
|
||||||
function Mode() {
|
function Mode() {
|
||||||
this.$tokenizer = new Tokenizer(new Rules().getRules());
|
this.$tokenizer = new Tokenizer(new Rules().getRules());
|
||||||
this.$outdent = new Outdent();
|
this.$outdent = new Outdent();
|
||||||
this.foldingRules = new PythonFoldMode("\\[|=|(=>)|(->)");
|
this.foldingRules = new PythonFoldMode("=|=>|->|\\s*class [^#]*");
|
||||||
}
|
}
|
||||||
|
|
||||||
oop.inherits(Mode, TextMode);
|
oop.inherits(Mode, TextMode);
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ var oop = require("../../lib/oop");
|
||||||
var BaseFoldMode = require("./fold_mode").FoldMode;
|
var BaseFoldMode = require("./fold_mode").FoldMode;
|
||||||
|
|
||||||
var FoldMode = exports.FoldMode = function(markers) {
|
var FoldMode = exports.FoldMode = function(markers) {
|
||||||
this.foldingStartMarker = new RegExp("(?:(\\[)|" + markers + ")(?:\\s*)(?:#.*)?$");
|
this.foldingStartMarker = new RegExp("(?:([\\[{])|(" + markers + "))(?:\\s*)(?:#.*)?$");
|
||||||
};
|
};
|
||||||
oop.inherits(FoldMode, BaseFoldMode);
|
oop.inherits(FoldMode, BaseFoldMode);
|
||||||
|
|
||||||
|
|
@ -53,8 +53,9 @@ oop.inherits(FoldMode, BaseFoldMode);
|
||||||
if (match) {
|
if (match) {
|
||||||
if (match[1])
|
if (match[1])
|
||||||
return this.openingBracketBlock(session, match[1], row, match.index);
|
return this.openingBracketBlock(session, match[1], row, match.index);
|
||||||
|
if (match[2])
|
||||||
return this.indentationBlock(session, row, match.index + 1);
|
return this.indentationBlock(session, row, match.index + match[2].length);
|
||||||
|
return this.indentationBlock(session, row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,7 @@ module.exports = {
|
||||||
'stuff',
|
'stuff',
|
||||||
']',
|
']',
|
||||||
'[ '
|
'[ '
|
||||||
|
'{ '
|
||||||
]);
|
]);
|
||||||
|
|
||||||
var mode = new PythonMode();
|
var mode = new PythonMode();
|
||||||
|
|
@ -62,6 +63,7 @@ module.exports = {
|
||||||
assert.equal(session.getFoldWidget(1), "");
|
assert.equal(session.getFoldWidget(1), "");
|
||||||
assert.equal(session.getFoldWidget(2), "");
|
assert.equal(session.getFoldWidget(2), "");
|
||||||
assert.equal(session.getFoldWidget(3), "start");
|
assert.equal(session.getFoldWidget(3), "start");
|
||||||
|
assert.equal(session.getFoldWidget(4), "start");
|
||||||
|
|
||||||
assert.range(session.getFoldWidgetRange(0), 0, 1, 2, 0);
|
assert.range(session.getFoldWidgetRange(0), 0, 1, 2, 0);
|
||||||
assert.equal(session.getFoldWidgetRange(3), null);
|
assert.equal(session.getFoldWidgetRange(3), null);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue