From d3244934d94a01bf23aa3bfdb53b3abfb7e2f741 Mon Sep 17 00:00:00 2001 From: Masafumi Koba <473530+ybiquitous@users.noreply.github.com> Date: Sun, 14 Aug 2022 15:29:48 +0900 Subject: [PATCH] Fix `selector-no-vendor-prefix` end positions (#6261) --- .../__tests__/index.js | 16 +++++++++ lib/rules/selector-no-vendor-prefix/index.js | 34 +++++++++++-------- 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/lib/rules/selector-no-vendor-prefix/__tests__/index.js b/lib/rules/selector-no-vendor-prefix/__tests__/index.js index f22ea1897c..a19d9afb17 100644 --- a/lib/rules/selector-no-vendor-prefix/__tests__/index.js +++ b/lib/rules/selector-no-vendor-prefix/__tests__/index.js @@ -51,6 +51,8 @@ testRule({ message: messages.rejected(':-webkit-full-screen'), line: 1, column: 1, + endLine: 1, + endColumn: 21, }, { code: ':-wEbKiT-fUlL-sCrEeN a {}', @@ -58,6 +60,8 @@ testRule({ message: messages.rejected(':-wEbKiT-fUlL-sCrEeN'), line: 1, column: 1, + endLine: 1, + endColumn: 21, }, { code: ':-WEBKIT-FULL-SCREEN a {}', @@ -65,6 +69,8 @@ testRule({ message: messages.rejected(':-WEBKIT-FULL-SCREEN'), line: 1, column: 1, + endLine: 1, + endColumn: 21, }, { code: 'body, :-ms-fullscreen a {}', @@ -72,6 +78,8 @@ testRule({ message: messages.rejected(':-ms-fullscreen'), line: 1, column: 7, + endLine: 1, + endColumn: 22, }, { code: 'input::-moz-placeholder, input::placeholder { color: pink; }', @@ -79,6 +87,8 @@ testRule({ message: messages.rejected('::-moz-placeholder'), line: 1, column: 6, + endLine: 1, + endColumn: 24, }, { code: 'input::-moz-placeholder { color: pink; }', @@ -86,11 +96,17 @@ testRule({ message: messages.rejected('::-moz-placeholder'), line: 1, column: 6, + endLine: 1, + endColumn: 24, }, { code: 'input::-webkit-input-placeholder { color: pink; }', fixed: 'input::input-placeholder { color: pink; }', message: messages.rejected('::-webkit-input-placeholder'), + line: 1, + column: 6, + endLine: 1, + endColumn: 33, }, ], }); diff --git a/lib/rules/selector-no-vendor-prefix/index.js b/lib/rules/selector-no-vendor-prefix/index.js index b522c91c63..4b410c69f6 100644 --- a/lib/rules/selector-no-vendor-prefix/index.js +++ b/lib/rules/selector-no-vendor-prefix/index.js @@ -49,25 +49,29 @@ const rule = (primary, secondaryOptions, context) => { parseSelector(selector, result, ruleNode, (selectorTree) => { selectorTree.walkPseudos((pseudoNode) => { - if (isAutoprefixable.selector(pseudoNode.value)) { - if (optionsMatches(secondaryOptions, 'ignoreSelectors', pseudoNode.value)) { - return; - } + const { value } = pseudoNode; - if (context.fix) { - ruleNode.selector = isAutoprefixable.unprefix(ruleNode.selector); + if (!isAutoprefixable.selector(value)) { + return; + } + + if (optionsMatches(secondaryOptions, 'ignoreSelectors', value)) { + return; + } - return; - } + if (context.fix) { + ruleNode.selector = isAutoprefixable.unprefix(selector); - report({ - result, - ruleName, - message: messages.rejected(pseudoNode.value), - node: ruleNode, - index: (ruleNode.raws.before || '').length + pseudoNode.sourceIndex, - }); + return; } + + report({ + result, + ruleName, + message: messages.rejected(value), + node: ruleNode, + word: value, + }); }); }); });