fb1fc38ba2d8c2c5222455a1abf011167ca534f0
[myslice.git] / third-party / codemirror-3.15 / addon / edit / continuelist.js
1 (function() {
2   'use strict';
3
4   var listRE = /^(\s*)([*+-]|(\d+)\.)(\s*)/,
5       unorderedBullets = '*+-';
6
7   CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) {
8     var pos = cm.getCursor(),
9         inList = cm.getStateAfter(pos.line).list,
10         match;
11
12     if (!inList || !(match = cm.getLine(pos.line).match(listRE))) {
13       cm.execCommand('newlineAndIndent');
14       return;
15     }
16
17     var indent = match[1], after = match[4];
18     var bullet = unorderedBullets.indexOf(match[2]) >= 0
19       ? match[2]
20       : (parseInt(match[3], 10) + 1) + '.';
21
22     cm.replaceSelection('\n' + indent + bullet + after, 'end');
23   };
24
25 }());