@@ -37,48 +37,32 @@ module.exports = {
37
37
return ;
38
38
}
39
39
40
- const openingElementEndLine = node . loc . end . line ;
40
+ const openingStartLine = node . loc . start . line ;
41
41
42
- // TODO: Just check if my parent opening tag is on the same line as me.
42
+ // Parent
43
+ if ( node . parent . parent && node . parent . parent . openingElement ) {
44
+ const parentOpeningStartLine = node . parent . parent . openingElement . loc . end . line ;
43
45
44
- // Children
45
- if ( node . parent . children . length ) {
46
- const childrenOnLine = [ ] ;
47
-
48
- node . parent . children . forEach ( childNode => {
49
- if ( ! childNode . openingElement || childNode . openingElement . loc . start . line !== openingElementEndLine ) {
50
- return ;
51
- }
52
-
53
- childrenOnLine . push ( childNode ) ;
54
- } ) ;
55
-
56
- if ( ! childrenOnLine . length ) {
57
- return ;
58
- }
59
-
60
- childrenOnLine . forEach ( childOnLine => {
46
+ if ( parentOpeningStartLine === openingStartLine ) {
61
47
context . report ( {
62
- node : childOnLine ,
63
- message : `Opening tag for Element \`${ childOnLine . openingElement . name . name } \` must be placed on a new line` ,
64
- fix : generateFixFunction ( childOnLine )
48
+ node : node ,
49
+ message : `Opening tag for Element \`${ node . name . name } \` must be placed on a new line` ,
50
+ fix : generateFixFunction ( node )
65
51
} ) ;
66
- } ) ;
52
+ }
67
53
}
68
54
69
55
// Siblings
70
56
if ( node . parent . parent && node . parent . parent . children && node . parent . parent . children . length ) {
71
57
const firstSibling = node . parent . parent . children . find ( sibling => sibling . type === 'JSXElement' ) ;
72
58
73
- if ( firstSibling === node . parent ) {
74
- return ;
59
+ if ( firstSibling !== node . parent ) {
60
+ context . report ( {
61
+ node : node ,
62
+ message : `Opening tag for Element \`${ node . name . name } \` must be placed on a new line` ,
63
+ fix : generateFixFunction ( node )
64
+ } ) ;
75
65
}
76
-
77
- context . report ( {
78
- node : node ,
79
- message : `Opening tag for Element \`${ node . name . name } \` must be placed on a new line` ,
80
- fix : generateFixFunction ( node )
81
- } ) ;
82
66
}
83
67
} ,
84
68
0 commit comments