Refactor MD037/no-space-in-emphasis slightly to simplify.

This commit is contained in:
David Anson 2023-08-29 22:29:04 -07:00
parent 86a72a05fa
commit 84e664e86e
2 changed files with 60 additions and 66 deletions

View file

@ -5202,8 +5202,6 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"), var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
addError = _require.addError; addError = _require.addError;
var emphasisStartTextRe = /^(\S{1,3})(\s+)\S/;
var emphasisEndTextRe = /\S(\s+)(\S{1,3})$/;
module.exports = { module.exports = {
"names": ["MD037", "no-space-in-emphasis"], "names": ["MD037", "no-space-in-emphasis"],
"description": "Spaces inside emphasis markers", "description": "Spaces inside emphasis markers",
@ -5261,44 +5259,43 @@ module.exports = {
} finally { } finally {
_iterator2.f(); _iterator2.f();
} }
var _iterator3 = _createForOfIteratorHelper(emphasisTokensByMarker.values()), var _iterator3 = _createForOfIteratorHelper(emphasisTokensByMarker.entries()),
_step3; _step3;
try { try {
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
var _emphasisTokens2 = _step3.value; var entry = _step3.value;
var _entry = _slicedToArray(entry, 2),
_marker = _entry[0],
_emphasisTokens2 = _entry[1];
for (var i = 0; i + 1 < _emphasisTokens2.length; i += 2) { for (var i = 0; i + 1 < _emphasisTokens2.length; i += 2) {
// Process start token of start/end pair // Process start token of start/end pair
var startToken = _emphasisTokens2[i]; var startToken = _emphasisTokens2[i];
var startText = lines[startToken.startLine - 1].slice(startToken.startColumn - 1); var startLine = lines[startToken.startLine - 1];
var startMatch = startText.match(emphasisStartTextRe); var startSlice = startLine.slice(startToken.endColumn - 1);
var startMatch = startSlice.match(/^\s+\S/);
if (startMatch) { if (startMatch) {
var _startMatch = _slicedToArray(startMatch, 3), var _startMatch = _slicedToArray(startMatch, 1),
startContext = _startMatch[0], startSpaceCharacter = _startMatch[0];
startMarker = _startMatch[1], var startContext = "".concat(_marker).concat(startSpaceCharacter);
startSpaces = _startMatch[2]; addError(onError, startToken.startLine, undefined, startContext, [startToken.startColumn, startContext.length], {
if (startMarker === startToken.text && startSpaces.length > 0) { "editColumn": startToken.endColumn,
addError(onError, startToken.startLine, undefined, startContext, [startToken.startColumn, startContext.length], { "deleteCount": startSpaceCharacter.length - 1
"editColumn": startToken.endColumn, });
"deleteCount": startSpaces.length
});
}
} }
// Process end token of start/end pair // Process end token of start/end pair
var endToken = _emphasisTokens2[i + 1]; var endToken = _emphasisTokens2[i + 1];
var endText = lines[endToken.startLine - 1].slice(0, endToken.endColumn - 1); var endLine = lines[endToken.startLine - 1];
var endMatch = endText.match(emphasisEndTextRe); var endSlice = endLine.slice(0, endToken.startColumn - 1);
var endMatch = endSlice.match(/\S\s+$/);
if (endMatch) { if (endMatch) {
var _endMatch = _slicedToArray(endMatch, 3), var _endMatch = _slicedToArray(endMatch, 1),
endContext = _endMatch[0], endSpaceCharacter = _endMatch[0];
endSpace = _endMatch[1], var endContext = "".concat(endSpaceCharacter).concat(_marker);
endMarker = _endMatch[2]; addError(onError, endToken.startLine, undefined, endContext, [endToken.endColumn - endContext.length, endContext.length], {
if (endMarker === endToken.text && endSpace.length > 0) { "editColumn": endToken.startColumn - (endSpaceCharacter.length - 1),
addError(onError, endToken.startLine, undefined, endContext, [endToken.endColumn - endContext.length, endContext.length], { "deleteCount": endSpaceCharacter.length - 1
"editColumn": endToken.startColumn - endSpace.length, });
"deleteCount": endSpace.length
});
}
} }
} }
} }

View file

@ -4,9 +4,6 @@
const { addError } = require("../helpers"); const { addError } = require("../helpers");
const emphasisStartTextRe = /^(\S{1,3})(\s+)\S/;
const emphasisEndTextRe = /\S(\s+)(\S{1,3})$/;
module.exports = { module.exports = {
"names": [ "MD037", "no-space-in-emphasis" ], "names": [ "MD037", "no-space-in-emphasis" ],
"description": "Spaces inside emphasis markers", "description": "Spaces inside emphasis markers",
@ -45,51 +42,51 @@ module.exports = {
} }
// Process bare tokens for each emphasis marker type // Process bare tokens for each emphasis marker type
for (const emphasisTokens of emphasisTokensByMarker.values()) { for (const entry of emphasisTokensByMarker.entries()) {
const [ marker, emphasisTokens ] = entry;
for (let i = 0; i + 1 < emphasisTokens.length; i += 2) { for (let i = 0; i + 1 < emphasisTokens.length; i += 2) {
// Process start token of start/end pair // Process start token of start/end pair
const startToken = emphasisTokens[i]; const startToken = emphasisTokens[i];
const startText = const startLine = lines[startToken.startLine - 1];
lines[startToken.startLine - 1].slice(startToken.startColumn - 1); const startSlice = startLine.slice(startToken.endColumn - 1);
const startMatch = startText.match(emphasisStartTextRe); const startMatch = startSlice.match(/^\s+\S/);
if (startMatch) { if (startMatch) {
const [ startContext, startMarker, startSpaces ] = startMatch; const [ startSpaceCharacter ] = startMatch;
if ((startMarker === startToken.text) && (startSpaces.length > 0)) { const startContext = `${marker}${startSpaceCharacter}`;
addError( addError(
onError, onError,
startToken.startLine, startToken.startLine,
undefined, undefined,
startContext, startContext,
[ startToken.startColumn, startContext.length ], [ startToken.startColumn, startContext.length ],
{ {
"editColumn": startToken.endColumn, "editColumn": startToken.endColumn,
"deleteCount": startSpaces.length "deleteCount": startSpaceCharacter.length - 1
} }
); );
}
} }
// Process end token of start/end pair // Process end token of start/end pair
const endToken = emphasisTokens[i + 1]; const endToken = emphasisTokens[i + 1];
const endText = const endLine = lines[endToken.startLine - 1];
lines[endToken.startLine - 1].slice(0, endToken.endColumn - 1); const endSlice = endLine.slice(0, endToken.startColumn - 1);
const endMatch = endText.match(emphasisEndTextRe); const endMatch = endSlice.match(/\S\s+$/);
if (endMatch) { if (endMatch) {
const [ endContext, endSpace, endMarker ] = endMatch; const [ endSpaceCharacter ] = endMatch;
if ((endMarker === endToken.text) && (endSpace.length > 0)) { const endContext = `${endSpaceCharacter}${marker}`;
addError( addError(
onError, onError,
endToken.startLine, endToken.startLine,
undefined, undefined,
endContext, endContext,
[ endToken.endColumn - endContext.length, endContext.length ], [ endToken.endColumn - endContext.length, endContext.length ],
{ {
"editColumn": endToken.startColumn - endSpace.length, "editColumn":
"deleteCount": endSpace.length endToken.startColumn - (endSpaceCharacter.length - 1),
} "deleteCount": endSpaceCharacter.length - 1
); }
} );
} }
} }
} }