@@ -81,62 +81,41 @@ module.exports = {
81
81
* @param {ASTNode } node Node violating the indent rule
82
82
* @param {Number } needed Expected indentation character count
83
83
* @param {Number } gotten Indentation character count in the actual node/code
84
- * @param {Object= } loc Error line and column location
85
84
*/
86
- function report ( node , needed , gotten , loc ) {
85
+ function report ( node , needed , gotten ) {
87
86
const msgContext = {
88
87
needed : needed ,
89
88
type : indentType ,
90
89
characters : needed === 1 ? 'character' : 'characters' ,
91
90
gotten : gotten
92
91
} ;
93
92
94
- if ( loc ) {
95
- context . report ( {
96
- node : node ,
97
- loc : loc ,
98
- message : MESSAGE ,
99
- data : msgContext
100
- } ) ;
101
- } else {
102
- context . report ( {
103
- node : node ,
104
- message : MESSAGE ,
105
- data : msgContext ,
106
- fix : function ( fixer ) {
107
- return fixer . replaceTextRange ( [ node . range [ 0 ] - node . loc . start . column , node . range [ 0 ] ] ,
108
- Array ( needed + 1 ) . join ( indentType === 'space' ? ' ' : '\t' ) ) ;
109
- }
110
- } ) ;
111
- }
93
+ context . report ( {
94
+ node : node ,
95
+ message : MESSAGE ,
96
+ data : msgContext ,
97
+ fix : function ( fixer ) {
98
+ return fixer . replaceTextRange ( [ node . range [ 0 ] - node . loc . start . column , node . range [ 0 ] ] ,
99
+ Array ( needed + 1 ) . join ( indentType === 'space' ? ' ' : '\t' ) ) ;
100
+ }
101
+ } ) ;
112
102
}
113
103
114
104
/**
115
105
* Get node indent
116
106
* @param {ASTNode } node Node to examine
117
- * @param {Boolean } byLastLine get indent of node's last line
118
- * @param {Boolean } excludeCommas skip comma on start of line
119
107
* @return {Number } Indent
120
108
*/
121
- function getNodeIndent ( node , byLastLine , excludeCommas ) {
122
- byLastLine = byLastLine || false ;
123
- excludeCommas = excludeCommas || false ;
124
-
109
+ function getNodeIndent ( node ) {
125
110
let src = sourceCode . getText ( node , node . loc . start . column + extraColumnStart ) ;
126
111
const lines = src . split ( '\n' ) ;
127
- if ( byLastLine ) {
128
- src = lines [ lines . length - 1 ] ;
129
- } else {
130
- src = lines [ 0 ] ;
131
- }
132
-
133
- const skip = excludeCommas ? ',' : '' ;
112
+ src = lines [ 0 ] ;
134
113
135
114
let regExp ;
136
115
if ( indentType === 'space' ) {
137
- regExp = new RegExp ( ` ^[ ${ skip } ]+` ) ;
116
+ regExp = / ^ [ ] + / ;
138
117
} else {
139
- regExp = new RegExp ( ` ^[\t${ skip } ]+` ) ;
118
+ regExp = / ^ [ \t ] + / ;
140
119
}
141
120
142
121
const indent = regExp . exec ( src ) ;
@@ -149,9 +128,9 @@ module.exports = {
149
128
* @param {Number } indent needed indent
150
129
* @param {Boolean } excludeCommas skip comma on start of line
151
130
*/
152
- function checkNodesIndent ( nodes , indent , excludeCommas ) {
131
+ function checkNodesIndent ( nodes , indent ) {
153
132
nodes . forEach ( node => {
154
- const nodeIndent = getNodeIndent ( node , false , excludeCommas ) ;
133
+ const nodeIndent = getNodeIndent ( node ) ;
155
134
if (
156
135
node . type !== 'ArrayExpression' && node . type !== 'ObjectExpression' &&
157
136
nodeIndent !== indent && astUtil . isNodeFirstInLine ( context , node )
0 commit comments