Skip to content

Commit 8e62f18

Browse files
author
Vincent Langlet
committed
✨ Add fixer for MultiLineArrayCommaSniff
1 parent ba08abd commit 8e62f18

File tree

4 files changed

+125
-31
lines changed

4 files changed

+125
-31
lines changed

Symfony3Custom/Sniffs/Arrays/MultiLineArrayCommaSniff.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,18 @@ public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
7272
if ($tokens[$lastComma]['code'] !== T_WHITESPACE
7373
&& $tokens[$lastComma]['code'] !== T_COMMENT
7474
) {
75-
$phpcsFile->addError(
75+
$fix = $phpcsFile->addFixableError(
7676
'Add a comma after each item in a multi-line array',
7777
$stackPtr,
7878
'Invalid'
7979
);
80+
81+
if ($fix === true) {
82+
$ptr = $phpcsFile->findPrevious(array(T_WHITESPACE, T_COMMENT), $closePtr-1, $stackPtr, true);
83+
$phpcsFile->fixer->addContent($ptr, ',');
84+
$phpcsFile->fixer->endChangeset();
85+
}
86+
8087
break;
8188
}
8289
}

Symfony3Custom/Tests/Arrays/MultiLineArrayCommaUnitTest.inc

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
$arr = array('foo', 'bar');
55

66
$arr = array(
7-
'foo'
8-
'bar',
7+
'foo',
8+
'bar'
99
);
1010

1111
$arr = array(
12-
'foo'
13-
'bar'
12+
'foo',
13+
'bar',
1414
);
1515

1616
$arr = array(
@@ -20,13 +20,13 @@ $arr = array(
2020
$arr = ['foo', 'bar'];
2121

2222
$arr = [
23-
'foo'
24-
'bar',
23+
'foo',
24+
'bar'
2525
];
2626

2727
$arr = [
28-
'foo'
29-
'bar'
28+
'foo',
29+
'bar',
3030
];
3131

3232
$arr = [
@@ -36,23 +36,23 @@ $arr = [
3636
$arr = array('foo', 'bar' /* baz */);
3737

3838
$arr = array(
39-
'foo'
40-
'bar', //baz
39+
'foo',
40+
'bar' //baz
4141
);
4242

4343
$arr = array(
44-
'foo'
45-
'bar' //baz
44+
'foo',
45+
'bar', //baz
4646
);
4747

4848
$arr = array(
49-
'foo'
50-
'bar', /* baz */
49+
'foo',
50+
'bar' /* baz */
5151
);
5252

5353
$arr = array(
54-
'foo'
55-
'bar' /* baz */
54+
'foo',
55+
'bar', /* baz */
5656
);
5757

5858
$arr = array(
@@ -63,23 +63,23 @@ $arr = array(
6363
$arr = ['foo', 'bar' /* baz */];
6464

6565
$arr = [
66-
'foo'
67-
'bar', //baz
66+
'foo',
67+
'bar' //baz
6868
];
6969

7070
$arr = [
71-
'foo'
72-
'bar' //baz
71+
'foo',
72+
'bar', //baz
7373
];
7474

7575
$arr = [
76-
'foo'
77-
'bar', /* baz */
76+
'foo',
77+
'bar' /* baz */
7878
];
7979

8080
$arr = [
81-
'foo'
82-
'bar' /* baz */
81+
'foo',
82+
'bar', /* baz */
8383
];
8484

8585
$arr = [
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?php
2+
3+
// classic array syntax
4+
$arr = array('foo', 'bar');
5+
6+
$arr = array(
7+
'foo',
8+
'bar',
9+
);
10+
11+
$arr = array(
12+
'foo',
13+
'bar',
14+
);
15+
16+
$arr = array(
17+
);
18+
19+
// short array syntax
20+
$arr = ['foo', 'bar'];
21+
22+
$arr = [
23+
'foo',
24+
'bar',
25+
];
26+
27+
$arr = [
28+
'foo',
29+
'bar',
30+
];
31+
32+
$arr = [
33+
];
34+
35+
// classic array syntax with comments
36+
$arr = array('foo', 'bar' /* baz */);
37+
38+
$arr = array(
39+
'foo',
40+
'bar', //baz
41+
);
42+
43+
$arr = array(
44+
'foo',
45+
'bar', //baz
46+
);
47+
48+
$arr = array(
49+
'foo',
50+
'bar', /* baz */
51+
);
52+
53+
$arr = array(
54+
'foo',
55+
'bar', /* baz */
56+
);
57+
58+
$arr = array(
59+
// foo => bar
60+
);
61+
62+
// short array syntax with comments
63+
$arr = ['foo', 'bar' /* baz */];
64+
65+
$arr = [
66+
'foo',
67+
'bar', //baz
68+
];
69+
70+
$arr = [
71+
'foo',
72+
'bar', //baz
73+
];
74+
75+
$arr = [
76+
'foo',
77+
'bar', /* baz */
78+
];
79+
80+
$arr = [
81+
'foo',
82+
'bar', /* baz */
83+
];
84+
85+
$arr = [
86+
// foo => bar
87+
];

Symfony3Custom/Tests/Arrays/MultiLineArrayCommaUnitTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ class Symfony3Custom_Tests_Arrays_MultiLineArrayCommaUnitTest
2020
public function getErrorList()
2121
{
2222
return array(
23-
11 => 1,
24-
27 => 1,
25-
43 => 1,
26-
53 => 1,
27-
70 => 1,
28-
80 => 1,
23+
6 => 1,
24+
22 => 1,
25+
38 => 1,
26+
48 => 1,
27+
65 => 1,
28+
75 => 1,
2929
);
3030
}
3131

0 commit comments

Comments
 (0)