(function() { 'use strict'; var listRE = /^(\s*)([*+-]|(\d+)\.)(\s*)/, unorderedBullets = '*+-'; CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) { var pos = cm.getCursor(), inList = cm.getStateAfter(pos.line).list, match; if (!inList || !(match = cm.getLine(pos.line).match(listRE))) { cm.execCommand('newlineAndIndent'); return; } var indent = match[1], after = match[4]; var bullet = unorderedBullets.indexOf(match[2]) >= 0 ? match[2] : (parseInt(match[3], 10) + 1) + '.'; cm.replaceSelection('\n' + indent + bullet + after, 'end'); }; }());