Fix multiline numbered list function

patch-ionaru
Mummakill 8 years ago
parent 6065d3e089
commit b9071f0c91

File diff suppressed because one or more lines are too long

@ -909,11 +909,29 @@ function _toggleLine(cm, name) {
"unordered-list": listRegexp, "unordered-list": listRegexp,
"ordered-list": listRegexp "ordered-list": listRegexp
}; };
var map = {
"quote": ">", var _getChar = function(name, i) {
"unordered-list": "*", var map = {
"ordered-list": "1." "quote": ">",
"unordered-list": "*",
"ordered-list": "%%i."
};
return map[name].replace("%%i", i);
};
var _checkChar = function(name, char) {
var map = {
"quote": "\>",
"unordered-list": "\*",
"ordered-list": "\d+."
};
var rt = new RegExp(map[name]);
return char && rt.test(char);
}; };
var line = 1;
for(var i = startPoint.line; i <= endPoint.line; i++) { for(var i = startPoint.line; i <= endPoint.line; i++) {
(function(i) { (function(i) {
var text = cm.getLine(i); var text = cm.getLine(i);
@ -921,15 +939,16 @@ function _toggleLine(cm, name) {
text = text.replace(repl[name], "$1"); text = text.replace(repl[name], "$1");
} else { } else {
var arr = listRegexp.exec(text); var arr = listRegexp.exec(text);
var char = _getChar(name, line);
if(arr !== null) { if(arr !== null) {
var char = map[name]; if(_checkChar(name, arr[2])) {
if(arr[2] && arr[2] == map[name]) {
char = ""; char = "";
} }
text = arr[1] + char + arr[3] + text.replace(whitespacesRegexp, "").replace(repl[name], "$1"); text = arr[1] + char + arr[3] + text.replace(whitespacesRegexp, "").replace(repl[name], "$1");
} else { } else {
text = map[name] + " " + text; text = char + " " + text;
} }
line += 1;
} }
cm.replaceRange(text, { cm.replaceRange(text, {
line: i, line: i,

Loading…
Cancel
Save