|
50 | 50 | }); |
51 | 51 | replacements[i] = "\n"; |
52 | 52 | } else { |
| 53 | + var disableAutoIncrement = cm.getOption("disableAutoIncrementMarkdownListNumbers") || false |
53 | 54 | var indent = match[1], after = match[5]; |
54 | 55 | var numbered = !(unorderedListRE.test(match[2]) || match[2].indexOf(">") >= 0); |
55 | | - var bullet = numbered ? (parseInt(match[3], 10) + 1) + match[4] : match[2].replace("x", " "); |
| 56 | + var bullet |
| 57 | + if (numbered) { |
| 58 | + bullet = (disableAutoIncrement ? 1 : (parseInt(match[3], 10) + 1)) + match[4]; |
| 59 | + } else { |
| 60 | + match[2].replace("x", " "); |
| 61 | + } |
56 | 62 | after = after.replace('[x]', '[ ]'); // make todo list default unchecked |
57 | 63 | replacements[i] = "\n" + indent + bullet + after; |
58 | 64 |
|
59 | | - if (numbered) incrementRemainingMarkdownListNumbers(cm, pos); |
| 65 | + if (numbered) incrementRemainingMarkdownListNumbers(cm, pos, disableAutoIncrement); |
60 | 66 | } |
61 | 67 | } |
62 | 68 |
|
|
65 | 71 |
|
66 | 72 | // Auto-updating Markdown list numbers when a new item is added to the |
67 | 73 | // middle of a list |
68 | | - function incrementRemainingMarkdownListNumbers(cm, pos) { |
| 74 | + function incrementRemainingMarkdownListNumbers(cm, pos, disableAutoIncrement) { |
69 | 75 | var startLine = pos.line, lookAhead = 0, skipCount = 0; |
70 | 76 | var startItem = listRE.exec(cm.getLine(startLine)), startIndent = startItem[1]; |
71 | 77 |
|
|
82 | 88 | if (startIndent === nextIndent && !isNaN(nextNumber)) { |
83 | 89 | if (newNumber === nextNumber) itemNumber = nextNumber + 1; |
84 | 90 | if (newNumber > nextNumber) itemNumber = newNumber + 1; |
| 91 | + if (disableAutoIncrement) itemNumber = 1 |
| 92 | + |
85 | 93 | cm.replaceRange( |
86 | 94 | nextLine.replace(listRE, nextIndent + itemNumber + nextItem[4] + nextItem[5]), |
87 | 95 | { |
|
0 commit comments