Update MD026/MD030 to report fixInfo for violations.

This commit is contained in:
David Anson 2019-09-11 22:59:42 -07:00
parent 00a7e765ec
commit 0502e370de
5 changed files with 53 additions and 17 deletions

View file

@ -2,8 +2,7 @@
"use strict";
const { addErrorDetailIf, listItemMarkerRe, rangeFromRegExp } =
require("../helpers");
const { addErrorDetailIf } = require("../helpers");
const { flattenedLists } = require("./cache");
module.exports = {
@ -22,10 +21,27 @@ module.exports = {
(allSingle ? ulSingle : ulMulti) :
(allSingle ? olSingle : olMulti);
list.items.forEach((item) => {
const match = /^[\s>]*\S+(\s+)/.exec(item.line);
addErrorDetailIf(onError, item.lineNumber,
expectedSpaces, (match ? match[1].length : 0), null, null,
rangeFromRegExp(item.line, listItemMarkerRe));
const { line, lineNumber } = item;
const match = /^[\s>]*\S+(\s*)/.exec(line);
const [ { "length": matchLength }, { "length": actualSpaces } ] = match;
let fixInfo = null;
if ((expectedSpaces !== actualSpaces) && (line.length > matchLength)) {
fixInfo = {
"editColumn": matchLength - actualSpaces + 1,
"deleteCount": actualSpaces,
"insertText": "".padEnd(expectedSpaces)
};
}
addErrorDetailIf(
onError,
lineNumber,
expectedSpaces,
actualSpaces,
null,
null,
[ 1, matchLength ],
fixInfo
);
});
});
}