From ca0ebae2b90b58657ae71baeebbbda43465325f5 Mon Sep 17 00:00:00 2001 From: Dan Wallis Date: Fri, 26 May 2023 12:19:37 +0100 Subject: [PATCH] Always fix closing HTML tags --- .../Sniffs/Html/HtmlClosingVoidTagsSniff.php | 33 ++++++---------- .../Sniffs/Html/HtmlSelfClosingTagsSniff.php | 39 +++++++------------ .../HtmlClosingVoidTagsUnitTest.inc.fixed | 4 +- .../HtmlSelfClosingTagsUnitTest.1.inc.fixed | 4 +- 4 files changed, 28 insertions(+), 52 deletions(-) diff --git a/Magento2/Sniffs/Html/HtmlClosingVoidTagsSniff.php b/Magento2/Sniffs/Html/HtmlClosingVoidTagsSniff.php index 3610cb39..90144639 100644 --- a/Magento2/Sniffs/Html/HtmlClosingVoidTagsSniff.php +++ b/Magento2/Sniffs/Html/HtmlClosingVoidTagsSniff.php @@ -83,29 +83,18 @@ public function process(File $phpcsFile, $stackPtr): void foreach ($matches as $match) { if (in_array($match[1], self::HTML_VOID_ELEMENTS)) { $ptr = $this->findPointer($phpcsFile, $match[0]); - if (!str_contains($match[0], "\n")) { - $fix = $phpcsFile->addFixableWarning( - sprintf(self::WARNING_MESSAGE, $match[0]), - $ptr, - self::WARNING_CODE - ); + $fix = $phpcsFile->addFixableWarning( + sprintf(self::WARNING_MESSAGE, $match[0]), + $ptr, + self::WARNING_CODE + ); - if ($fix) { - $token = $phpcsFile->getTokens()[$ptr]; - $original = $match[0]; - $replacement = str_replace(' />', '>', $original); - $replacement = str_replace('/>', '>', $replacement); - $phpcsFile->fixer->replaceToken( - $ptr, - str_replace($original, $replacement, $token['content']) - ); - } - } else { - $phpcsFile->addWarning( - sprintf(self::WARNING_MESSAGE, $match[0]), - $ptr, - self::WARNING_CODE - ); + if ($fix) { + $token = $phpcsFile->getTokens()[$ptr]; + $original = $token['content']; + $replacement = str_replace(' />', '>', $original); + $replacement = str_replace('/>', '>', $replacement); + $phpcsFile->fixer->replaceToken($ptr, $replacement); } } } diff --git a/Magento2/Sniffs/Html/HtmlSelfClosingTagsSniff.php b/Magento2/Sniffs/Html/HtmlSelfClosingTagsSniff.php index c026e67f..5fd75e3d 100644 --- a/Magento2/Sniffs/Html/HtmlSelfClosingTagsSniff.php +++ b/Magento2/Sniffs/Html/HtmlSelfClosingTagsSniff.php @@ -72,32 +72,19 @@ public function process(File $phpcsFile, $stackPtr) foreach ($matches as $match) { if (!in_array($match[1], self::HTML_VOID_ELEMENTS)) { $ptr = $this->findPointer($phpcsFile, $match[0]); - if (!str_contains($match[0], "\n")) { - $fix = $phpcsFile->addFixableError( - 'Avoid using self-closing tag with non-void html element' - . ' - "' . $match[0] . PHP_EOL, - $ptr, - 'HtmlSelfClosingNonVoidTag' - ); - - if ($fix) { - $token = $phpcsFile->getTokens()[$ptr]; - $original = $match[0]; - $replacement = str_replace(' />', '>', $original); - $replacement = str_replace('/>', '>', $replacement); - $phpcsFile->fixer->replaceToken( - $ptr, - str_replace($original, $replacement, $token['content']) - ); - - } - } else { - $phpcsFile->addError( - 'Avoid using self-closing tag with non-void html element' - . ' - "' . $match[0] . PHP_EOL, - $ptr, - 'HtmlSelfClosingNonVoidTag' - ); + $fix = $phpcsFile->addFixableError( + 'Avoid using self-closing tag with non-void html element' + . ' - "' . $match[0] . PHP_EOL, + $ptr, + 'HtmlSelfClosingNonVoidTag' + ); + + if ($fix) { + $token = $phpcsFile->getTokens()[$ptr]; + $original = $token['content']; + $replacement = str_replace(' />', '>', $original); + $replacement = str_replace('/>', '>', $replacement); + $phpcsFile->fixer->replaceToken($ptr, $replacement); } } } diff --git a/Magento2/Tests/Html/HtmlClosingVoidTagsUnitTest.inc.fixed b/Magento2/Tests/Html/HtmlClosingVoidTagsUnitTest.inc.fixed index a7b722a1..0b04c24f 100644 --- a/Magento2/Tests/Html/HtmlClosingVoidTagsUnitTest.inc.fixed +++ b/Magento2/Tests/Html/HtmlClosingVoidTagsUnitTest.inc.fixed @@ -25,10 +25,10 @@ + > + placeholder="Alert should be on last line">