From 6b3736b17e2e948225718c1af96418d7acf5ebf1 Mon Sep 17 00:00:00 2001 From: Yosuke Ota Date: Sat, 13 May 2023 22:53:19 +0900 Subject: [PATCH] Add support for `defineOptions` to `vue/padding-lines-in-component-definition` rule (#2164) --- .../padding-lines-in-component-definition.js | 10 +++++ .../padding-lines-in-component-definition.js | 40 +++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/lib/rules/padding-lines-in-component-definition.js b/lib/rules/padding-lines-in-component-definition.js index 3f63050b4..b2f1a54dc 100644 --- a/lib/rules/padding-lines-in-component-definition.js +++ b/lib/rules/padding-lines-in-component-definition.js @@ -352,6 +352,16 @@ module.exports = { parseOption(emitsOption, OptionKeys.BetweenItems), parseOption(emitsOption, OptionKeys.WithinEach) ) + }, + onDefineOptionsEnter(node) { + if (node.arguments.length === 0) return + const define = node.arguments[0] + if (define.type !== 'ObjectExpression') return + verify( + define.properties, + parseOption(options, OptionKeys.BetweenOptions), + parseOption(options, OptionKeys.WithinOption) + ) } }) ) diff --git a/tests/lib/rules/padding-lines-in-component-definition.js b/tests/lib/rules/padding-lines-in-component-definition.js index a4ed4d3c3..586476546 100644 --- a/tests/lib/rules/padding-lines-in-component-definition.js +++ b/tests/lib/rules/padding-lines-in-component-definition.js @@ -385,6 +385,19 @@ tester.run('padding-lines-in-component-definition', rule, { `, options: ['always'] + }, + { + filename: 'MyComment.vue', + code: ` + + `, + options: [{ betweenOptions: 'always', groupSingleLineProperties: false }] } ], invalid: [ @@ -1235,6 +1248,33 @@ tester.run('padding-lines-in-component-definition', rule, { line: 16 } ] + }, + { + filename: 'MyComment.vue', + code: ` + + `, + output: ` + + `, + options: [{ betweenOptions: 'always', groupSingleLineProperties: false }], + errors: [ + { + message: 'Expected blank line before this definition.', + line: 5 + } + ] } ] })