Fix possible exceptions due to addError's range/editColumn out of range, update test-extra to use test.serial() for better progress.

This commit is contained in:
David Anson 2023-12-31 21:51:34 -08:00
parent e7d3708056
commit 9b5f6a28f9
8 changed files with 19 additions and 18 deletions

View file

@ -23,8 +23,7 @@ module.exports = {
for (const listItemPrefix of listItemPrefixes) {
const lineNumber = listItemPrefix.startLine;
const actualIndent = listItemPrefix.startColumn - 1;
const markerLength = listItemPrefix.text.trim().length;
const range = [ 1, listItemPrefix.startColumn + markerLength ];
const range = [ 1, listItemPrefix.endColumn - 1 ];
if (list.type === "listUnordered") {
addErrorDetailIf(
onError,
@ -37,7 +36,8 @@ module.exports = {
// No fixInfo; MD007 handles this scenario better
);
} else {
const actualEnd = range[1] - 1;
const markerLength = listItemPrefix.text.trim().length;
const actualEnd = listItemPrefix.startColumn + markerLength - 1;
expectedEnd = expectedEnd || actualEnd;
if ((expectedIndent !== actualIndent) || endMatching) {
if (expectedEnd === actualEnd) {

View file

@ -30,7 +30,7 @@ module.exports = {
unorderedListTypes
);
for (const token of tokens) {
const { parent, startColumn, startLine, type } = token;
const { endColumn, parent, startColumn, startLine, type } = token;
if (type === "blockQuotePrefix") {
lastBlockQuotePrefix = token;
} else if (type === "listUnordered") {
@ -63,7 +63,7 @@ module.exports = {
(lastBlockQuotePrefix.endColumn - 1) :
0;
const actualIndent = startColumn - 1 - blockQuoteAdjustment;
const range = [ 1, startColumn + 1 ];
const range = [ 1, endColumn - 1 ];
const fixInfo = {
"editColumn": startColumn - actualIndent,
"deleteCount": Math.max(actualIndent - expectedIndent, 0),

View file

@ -23,7 +23,7 @@ module.exports = {
[ "atxHeadingText", "setextHeadingText" ]
);
for (const heading of headings) {
const { endLine, startColumn, text } = heading;
const { endColumn, endLine, text } = heading;
const match = trailingPunctuationRe.exec(text);
if (
match &&
@ -31,8 +31,8 @@ module.exports = {
!endOfLineGemojiCodeRe.test(text)
) {
const fullMatch = match[0];
const column = startColumn + match.index;
const length = fullMatch.length;
const column = endColumn - length;
addError(
onError,
endLine,