diff --git a/lib/rules/multiline-html-element-content-newline.js b/lib/rules/multiline-html-element-content-newline.js index 415c8ddf4..dcef5170d 100644 --- a/lib/rules/multiline-html-element-content-newline.js +++ b/lib/rules/multiline-html-element-content-newline.js @@ -9,6 +9,7 @@ // ------------------------------------------------------------------------------ const utils = require('../utils') +const casing = require('../utils/casing') // ------------------------------------------------------------------------------ // Helpers @@ -20,7 +21,7 @@ function isMultilineElement (element) { function parseOptions (options) { return Object.assign({ - 'ignores': ['pre', 'textarea'] + ignores: ['pre', 'textarea'] }, options) } @@ -80,12 +81,18 @@ module.exports = { let inIgnoreElement + function isIgnoredElement (node) { + return ignores.includes(node.name) || + ignores.includes(casing.pascalCase(node.rawName)) || + ignores.includes(casing.kebabCase(node.rawName)) + } + return utils.defineTemplateBodyVisitor(context, { 'VElement' (node) { if (inIgnoreElement) { return } - if (ignores.indexOf(node.name) >= 0) { + if (isIgnoredElement(node)) { // ignore element name inIgnoreElement = node return @@ -114,7 +121,7 @@ module.exports = { }, messageId: 'unexpectedAfterClosingBracket', data: { - name: node.name, + name: node.rawName, actual: getPhrase(beforeLineBreaks) }, fix (fixer) { diff --git a/tests/lib/rules/multiline-html-element-content-newline.js b/tests/lib/rules/multiline-html-element-content-newline.js index c60fa513f..e653218e9 100644 --- a/tests/lib/rules/multiline-html-element-content-newline.js +++ b/tests/lib/rules/multiline-html-element-content-newline.js @@ -91,13 +91,45 @@ tester.run('multiline-html-element-content-newline', rule, { >content
content
- >content + content content `, options: [{ ignores: ['ignore-tag'] }] }, + { + code: ` + `, + options: [{ + ignores: ['IgnoreTag'] + }] + }, + { + code: ` + `, + options: [{ + ignores: ['IgnoreTag'] + }] + }, // Ignore if no closing brackets `