Fix broken MD020/MD021/MD038 scenarios.

This commit is contained in:
David Anson 2019-09-19 21:39:59 -07:00
parent 677255a484
commit 33e3797084
5 changed files with 32 additions and 28 deletions

View file

@ -22,19 +22,29 @@ module.exports = {
let rangeIndex = columnIndex - tickCount;
let rangeLength = code.length + (2 * tickCount);
let rangeLineOffset = 0;
let fixIndex = columnIndex;
let fixLength = code.length;
const codeLines = code.split(newLineRe);
const left = leftSpaceRe.test(code);
const right = !left && rightSpaceRe.test(code);
if (right && (codeLines.length > 1)) {
rangeIndex = 0;
rangeLineOffset = codeLines.length - 1;
fixIndex = 0;
}
if (left || right) {
const codeLinesRange = codeLines[rangeLineOffset];
if (codeLines.length > 1) {
rangeLength = codeLines[rangeLineOffset].length + tickCount;
rangeLength = codeLinesRange.length + tickCount;
fixLength = codeLinesRange.length;
}
const context = tokenLines[lineIndex + rangeLineOffset]
.substring(rangeIndex, rangeIndex + rangeLength);
const codeLinesRangeTrim = codeLinesRange.trim();
const fixText =
(codeLinesRangeTrim.startsWith("`") ? " " : "") +
codeLinesRangeTrim +
(codeLinesRangeTrim.endsWith("`") ? " " : "");
addErrorContext(
onError,
token.lineNumber + lineIndex + rangeLineOffset,
@ -43,9 +53,9 @@ module.exports = {
right,
[ rangeIndex + 1, rangeLength ],
{
"editColumn": rangeIndex + (left ? tickCount : 0) + 1,
"deleteCount": rangeLength - (right ? tickCount : 0),
"insertText": code.trim()
"editColumn": fixIndex + 1,
"deleteCount": fixLength,
"insertText": fixText
}
);
}