|
11 | 11 | })(function(CodeMirror) { |
12 | 12 | "use strict"; |
13 | 13 |
|
14 | | - var listRE = /^(\s*)([*+-]|(\d+)\.)(\s+)/, |
15 | | - emptyListRE = /^(\s*)([*+-]|(\d+)\.)(\s*)$/, |
| 14 | + var listRE = /^(\s*)([> ]+|[*+-]|(\d+)\.)(\s+)/, |
| 15 | + emptyListRE = /^(\s*)([> ]+|[*+-]|(\d+)\.)(\s*)$/, |
16 | 16 | unorderedBullets = "*+-"; |
17 | 17 |
|
18 | 18 | CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) { |
19 | 19 | if (cm.getOption("disableInput")) return CodeMirror.Pass; |
20 | 20 | var ranges = cm.listSelections(), replacements = []; |
21 | 21 | for (var i = 0; i < ranges.length; i++) { |
22 | 22 | var pos = ranges[i].head, match; |
23 | | - var inList = cm.getStateAfter(pos.line).list !== false; |
| 23 | + var eolState = cm.getStateAfter(pos.line); |
| 24 | + var inList = eolState.list !== false; |
| 25 | + var inQuote = eolState.quote !== false; |
24 | 26 |
|
25 | | - if (!ranges[i].empty() || !inList || !(match = cm.getLine(pos.line).match(listRE))) { |
| 27 | + if (!ranges[i].empty() || (!inList && !inQuote) || !(match = cm.getLine(pos.line).match(listRE))) { |
26 | 28 | cm.execCommand("newlineAndIndent"); |
27 | 29 | return; |
28 | 30 | } |
|
36 | 38 |
|
37 | 39 | } else { |
38 | 40 | var indent = match[1], after = match[4]; |
39 | | - var bullet = unorderedBullets.indexOf(match[2]) >= 0 |
| 41 | + var bullet = unorderedBullets.indexOf(match[2]) >= 0 || match[2].indexOf(">") >= 0 |
40 | 42 | ? match[2] |
41 | 43 | : (parseInt(match[3], 10) + 1) + "."; |
42 | 44 |
|
|
0 commit comments