diff --git a/demo/markdownlint-browser.js b/demo/markdownlint-browser.js index 72769a85..9e6d365f 100644 --- a/demo/markdownlint-browser.js +++ b/demo/markdownlint-browser.js @@ -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; } var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"), addError = _require.addError; -var emphasisStartTextRe = /^(\S{1,3})(\s+)\S/; -var emphasisEndTextRe = /\S(\s+)(\S{1,3})$/; module.exports = { "names": ["MD037", "no-space-in-emphasis"], "description": "Spaces inside emphasis markers", @@ -5261,44 +5259,43 @@ module.exports = { } finally { _iterator2.f(); } - var _iterator3 = _createForOfIteratorHelper(emphasisTokensByMarker.values()), + var _iterator3 = _createForOfIteratorHelper(emphasisTokensByMarker.entries()), _step3; try { 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) { // Process start token of start/end pair var startToken = _emphasisTokens2[i]; - var startText = lines[startToken.startLine - 1].slice(startToken.startColumn - 1); - var startMatch = startText.match(emphasisStartTextRe); + var startLine = lines[startToken.startLine - 1]; + var startSlice = startLine.slice(startToken.endColumn - 1); + var startMatch = startSlice.match(/^\s+\S/); if (startMatch) { - var _startMatch = _slicedToArray(startMatch, 3), - startContext = _startMatch[0], - startMarker = _startMatch[1], - startSpaces = _startMatch[2]; - if (startMarker === startToken.text && startSpaces.length > 0) { - addError(onError, startToken.startLine, undefined, startContext, [startToken.startColumn, startContext.length], { - "editColumn": startToken.endColumn, - "deleteCount": startSpaces.length - }); - } + var _startMatch = _slicedToArray(startMatch, 1), + startSpaceCharacter = _startMatch[0]; + var startContext = "".concat(_marker).concat(startSpaceCharacter); + addError(onError, startToken.startLine, undefined, startContext, [startToken.startColumn, startContext.length], { + "editColumn": startToken.endColumn, + "deleteCount": startSpaceCharacter.length - 1 + }); } // Process end token of start/end pair var endToken = _emphasisTokens2[i + 1]; - var endText = lines[endToken.startLine - 1].slice(0, endToken.endColumn - 1); - var endMatch = endText.match(emphasisEndTextRe); + var endLine = lines[endToken.startLine - 1]; + var endSlice = endLine.slice(0, endToken.startColumn - 1); + var endMatch = endSlice.match(/\S\s+$/); if (endMatch) { - var _endMatch = _slicedToArray(endMatch, 3), - endContext = _endMatch[0], - endSpace = _endMatch[1], - endMarker = _endMatch[2]; - if (endMarker === endToken.text && endSpace.length > 0) { - addError(onError, endToken.startLine, undefined, endContext, [endToken.endColumn - endContext.length, endContext.length], { - "editColumn": endToken.startColumn - endSpace.length, - "deleteCount": endSpace.length - }); - } + var _endMatch = _slicedToArray(endMatch, 1), + endSpaceCharacter = _endMatch[0]; + var endContext = "".concat(endSpaceCharacter).concat(_marker); + addError(onError, endToken.startLine, undefined, endContext, [endToken.endColumn - endContext.length, endContext.length], { + "editColumn": endToken.startColumn - (endSpaceCharacter.length - 1), + "deleteCount": endSpaceCharacter.length - 1 + }); } } } diff --git a/lib/md037.js b/lib/md037.js index 559f9dc8..9e8ba8d2 100644 --- a/lib/md037.js +++ b/lib/md037.js @@ -4,9 +4,6 @@ const { addError } = require("../helpers"); -const emphasisStartTextRe = /^(\S{1,3})(\s+)\S/; -const emphasisEndTextRe = /\S(\s+)(\S{1,3})$/; - module.exports = { "names": [ "MD037", "no-space-in-emphasis" ], "description": "Spaces inside emphasis markers", @@ -45,51 +42,51 @@ module.exports = { } // 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) { // Process start token of start/end pair const startToken = emphasisTokens[i]; - const startText = - lines[startToken.startLine - 1].slice(startToken.startColumn - 1); - const startMatch = startText.match(emphasisStartTextRe); + const startLine = lines[startToken.startLine - 1]; + const startSlice = startLine.slice(startToken.endColumn - 1); + const startMatch = startSlice.match(/^\s+\S/); if (startMatch) { - const [ startContext, startMarker, startSpaces ] = startMatch; - if ((startMarker === startToken.text) && (startSpaces.length > 0)) { - addError( - onError, - startToken.startLine, - undefined, - startContext, - [ startToken.startColumn, startContext.length ], - { - "editColumn": startToken.endColumn, - "deleteCount": startSpaces.length - } - ); - } + const [ startSpaceCharacter ] = startMatch; + const startContext = `${marker}${startSpaceCharacter}`; + addError( + onError, + startToken.startLine, + undefined, + startContext, + [ startToken.startColumn, startContext.length ], + { + "editColumn": startToken.endColumn, + "deleteCount": startSpaceCharacter.length - 1 + } + ); } // Process end token of start/end pair const endToken = emphasisTokens[i + 1]; - const endText = - lines[endToken.startLine - 1].slice(0, endToken.endColumn - 1); - const endMatch = endText.match(emphasisEndTextRe); + const endLine = lines[endToken.startLine - 1]; + const endSlice = endLine.slice(0, endToken.startColumn - 1); + const endMatch = endSlice.match(/\S\s+$/); if (endMatch) { - const [ endContext, endSpace, endMarker ] = endMatch; - if ((endMarker === endToken.text) && (endSpace.length > 0)) { - addError( - onError, - endToken.startLine, - undefined, - endContext, - [ endToken.endColumn - endContext.length, endContext.length ], - { - "editColumn": endToken.startColumn - endSpace.length, - "deleteCount": endSpace.length - } - ); - } + const [ endSpaceCharacter ] = endMatch; + const endContext = `${endSpaceCharacter}${marker}`; + addError( + onError, + endToken.startLine, + undefined, + endContext, + [ endToken.endColumn - endContext.length, endContext.length ], + { + "editColumn": + endToken.startColumn - (endSpaceCharacter.length - 1), + "deleteCount": endSpaceCharacter.length - 1 + } + ); } } }