File tree Expand file tree Collapse file tree 6 files changed +101
-0
lines changed Expand file tree Collapse file tree 6 files changed +101
-0
lines changed Original file line number Diff line number Diff line change @@ -140,6 +140,7 @@ For example:
140
140
| Rule ID | Description | |
141
141
| :--------| :------------| :---|
142
142
| [ vue/array-bracket-spacing] ( ./array-bracket-spacing.md ) | enforce consistent spacing inside array brackets | :wrench : |
143
+ | [ vue/comma-dangle] ( ./comma-dangle.md ) | require or disallow trailing commas | :wrench : |
143
144
| [ vue/component-name-in-template-casing] ( ./component-name-in-template-casing.md ) | enforce specific casing for the component naming style in template | :wrench : |
144
145
| [ vue/eqeqeq] ( ./eqeqeq.md ) | require the use of ` === ` and ` !== ` | :wrench : |
145
146
| [ vue/key-spacing] ( ./key-spacing.md ) | enforce consistent spacing between keys and values in object literal properties | :wrench : |
Original file line number Diff line number Diff line change
1
+ ---
2
+ pageClass : rule-details
3
+ sidebarDepth : 0
4
+ title : vue/comma-dangle
5
+ description : require or disallow trailing commas
6
+ ---
7
+ # vue/comma-dangle
8
+ > require or disallow trailing commas
9
+
10
+ - :wrench : The ` --fix ` option on the [ command line] ( https://eslint.org/docs/user-guide/command-line-interface#fixing-problems ) can automatically fix some of the problems reported by this rule.
11
+
12
+ This rule is the same rule as core [ comma-dangle] rule but it applies to the expressions in ` <template> ` .
13
+
14
+ ## :books : Further reading
15
+
16
+ - [ comma-dangle]
17
+
18
+ [ comma-dangle ] : https://eslint.org/docs/rules/comma-dangle
19
+
20
+ ## :mag : Implementation
21
+
22
+ - [ Rule source] ( https://github.com/vuejs/eslint-plugin-vue/blob/master/lib/rules/comma-dangle.js )
23
+ - [ Test source] ( https://github.com/vuejs/eslint-plugin-vue/blob/master/tests/lib/rules/comma-dangle.js )
Original file line number Diff line number Diff line change 6
6
module . exports = {
7
7
rules : {
8
8
'vue/array-bracket-spacing' : 'off' ,
9
+ 'vue/comma-dangle' : 'off' ,
9
10
'vue/html-closing-bracket-newline' : 'off' ,
10
11
'vue/html-closing-bracket-spacing' : 'off' ,
11
12
'vue/html-indent' : 'off' ,
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ module.exports = {
10
10
'array-bracket-spacing' : require ( './rules/array-bracket-spacing' ) ,
11
11
'attribute-hyphenation' : require ( './rules/attribute-hyphenation' ) ,
12
12
'attributes-order' : require ( './rules/attributes-order' ) ,
13
+ 'comma-dangle' : require ( './rules/comma-dangle' ) ,
13
14
'comment-directive' : require ( './rules/comment-directive' ) ,
14
15
'component-name-in-template-casing' : require ( './rules/component-name-in-template-casing' ) ,
15
16
'eqeqeq' : require ( './rules/eqeqeq' ) ,
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @author Yosuke Ota
3
+ */
4
+ 'use strict'
5
+
6
+ const { wrapCoreRule } = require ( '../utils' )
7
+
8
+ // eslint-disable-next-line
9
+ module . exports = wrapCoreRule ( require ( 'eslint/lib/rules/comma-dangle' ) )
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @author Yosuke Ota
3
+ */
4
+ 'use strict'
5
+
6
+ const RuleTester = require ( 'eslint' ) . RuleTester
7
+ const rule = require ( '../../../lib/rules/comma-dangle' )
8
+
9
+ const tester = new RuleTester ( {
10
+ parser : 'vue-eslint-parser' ,
11
+ parserOptions : { ecmaVersion : 2018 }
12
+ } )
13
+
14
+ tester . run ( 'comma-dangle' , rule , {
15
+ valid : [
16
+ `<template>
17
+ <button @click="() => fn([a, b])" ></button>
18
+ </template>` ,
19
+ {
20
+ code : `
21
+ <template>
22
+ <CustomButton @click="($event, data) => fn()" />
23
+ </template>` ,
24
+ options : [ {
25
+ 'functions' : 'never'
26
+ } ]
27
+ }
28
+ ] ,
29
+ invalid : [
30
+ {
31
+ code : `
32
+ <template>
33
+ <button @click="() => fn([a, b,])" ></button>
34
+ </template>` ,
35
+ output : `
36
+ <template>
37
+ <button @click="() => fn([a, b])" ></button>
38
+ </template>` ,
39
+ errors : [
40
+ {
41
+ message : 'Unexpected trailing comma.' ,
42
+ line : 3
43
+ }
44
+ ]
45
+ } ,
46
+ {
47
+ code : `
48
+ <template>
49
+ <CustomButton @click="($event, data,) => fn()" />
50
+ </template>` ,
51
+ options : [ {
52
+ 'functions' : 'never'
53
+ } ] ,
54
+ output : `
55
+ <template>
56
+ <CustomButton @click="($event, data) => fn()" />
57
+ </template>` ,
58
+ errors : [
59
+ {
60
+ message : 'Unexpected trailing comma.' ,
61
+ line : 3
62
+ }
63
+ ]
64
+ }
65
+ ]
66
+ } )
You can’t perform that action at this time.
0 commit comments