From 223a265cbdceba04aae60777077ff02832cf4449 Mon Sep 17 00:00:00 2001 From: Sergio Vera Date: Mon, 20 Jun 2022 16:33:59 +0200 Subject: [PATCH 1/3] AC-3520: Avoid processing less and CSS pseudo-classes --- Magento2/Sniffs/Less/ColonSpacingSniff.php | 11 +++--- Magento2/Tests/Less/ColonSpacingUnitTest.less | 34 ++++++++++++++++--- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/Magento2/Sniffs/Less/ColonSpacingSniff.php b/Magento2/Sniffs/Less/ColonSpacingSniff.php index 505c44fd..73bf661b 100644 --- a/Magento2/Sniffs/Less/ColonSpacingSniff.php +++ b/Magento2/Sniffs/Less/ColonSpacingSniff.php @@ -60,12 +60,15 @@ private function needValidateSpaces(File $phpcsFile, $stackPtr, $tokens) return false; } - $prev = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($stackPtr - 1), null, true); - if ($tokens[$prev]['code'] !== T_STYLE) { - // The colon is not part of a style definition. - return false; + // Avoid false positives when parsing pseudo-classes + if ($tokens[$stackPtr]['code'] === T_COLON) { + $next = $phpcsFile->findNext([T_SEMICOLON, T_OPEN_CURLY_BRACKET], $stackPtr + 1); + if ($tokens[$next]['code'] === T_OPEN_CURLY_BRACKET) { + return false; + } } + $prev = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($stackPtr - 1), null, true); if ($tokens[$prev]['content'] === 'progid') { // Special case for IE filters. return false; diff --git a/Magento2/Tests/Less/ColonSpacingUnitTest.less b/Magento2/Tests/Less/ColonSpacingUnitTest.less index 37de49e4..d6b76d84 100644 --- a/Magento2/Tests/Less/ColonSpacingUnitTest.less +++ b/Magento2/Tests/Less/ColonSpacingUnitTest.less @@ -5,22 +5,46 @@ div#foo { - blah:'abc'; + blah:'abc'; } .my #foo .blah { - some: 'stuff'; + some: 'stuff'; } .blah { - foo :'jkl'; + foo :'jkl'; } .foo { - bar: + bar: 'xyz'; } .right { - way: 'good' + way: 'good'; } + +a:active { + color: #000; +} + +@abs-action-button-as-link: { + &:not(:focus) { + box-shadow: none; + } +} + +.actions-toolbar { + &:not(:first-child) { + &:extend(.abs-add-clearfix all); + > .secondary { + .action { + &.add { + margin-top: @indent__l; + } + } + float: left; + } + } +} \ No newline at end of file From 24dc36774e1b00b223ff7a15dae8710cea59e268 Mon Sep 17 00:00:00 2001 From: Sergio Vera Date: Mon, 20 Jun 2022 16:35:25 +0200 Subject: [PATCH 2/3] AC-3520: Newline --- Magento2/Tests/Less/ColonSpacingUnitTest.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Magento2/Tests/Less/ColonSpacingUnitTest.less b/Magento2/Tests/Less/ColonSpacingUnitTest.less index d6b76d84..cd6a3fd3 100644 --- a/Magento2/Tests/Less/ColonSpacingUnitTest.less +++ b/Magento2/Tests/Less/ColonSpacingUnitTest.less @@ -47,4 +47,4 @@ a:active { float: left; } } -} \ No newline at end of file +} From 31335a0a1fd54cd5b4de926637ce4fb44d6e2168 Mon Sep 17 00:00:00 2001 From: Sergio Vera Date: Mon, 20 Jun 2022 16:45:25 +0200 Subject: [PATCH 3/3] AC-3520: Removed unneeded if --- Magento2/Sniffs/Less/ColonSpacingSniff.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Magento2/Sniffs/Less/ColonSpacingSniff.php b/Magento2/Sniffs/Less/ColonSpacingSniff.php index 73bf661b..6b68ea65 100644 --- a/Magento2/Sniffs/Less/ColonSpacingSniff.php +++ b/Magento2/Sniffs/Less/ColonSpacingSniff.php @@ -61,11 +61,9 @@ private function needValidateSpaces(File $phpcsFile, $stackPtr, $tokens) } // Avoid false positives when parsing pseudo-classes - if ($tokens[$stackPtr]['code'] === T_COLON) { - $next = $phpcsFile->findNext([T_SEMICOLON, T_OPEN_CURLY_BRACKET], $stackPtr + 1); - if ($tokens[$next]['code'] === T_OPEN_CURLY_BRACKET) { - return false; - } + $next = $phpcsFile->findNext([T_SEMICOLON, T_OPEN_CURLY_BRACKET], $stackPtr + 1); + if ($tokens[$next]['code'] === T_OPEN_CURLY_BRACKET) { + return false; } $prev = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($stackPtr - 1), null, true);