2 * @fileoverview Prevent missing parentheses around multilines JSX
3 * @author Yannick Croissant
7 // ------------------------------------------------------------------------------
9 // ------------------------------------------------------------------------------
11 module.exports = function(context) {
13 function isParenthesised(node) {
14 var previousToken = context.getTokenBefore(node);
15 var nextToken = context.getTokenAfter(node);
17 return previousToken && nextToken &&
18 previousToken.value === '(' && previousToken.range[1] <= node.range[0] &&
19 nextToken.value === ')' && nextToken.range[0] >= node.range[1];
22 function isMultilines(node) {
23 return node.loc.start.line !== node.loc.end.line;
26 function check(node) {
27 if (!node || node.type !== 'JSXElement') {
31 if (!isParenthesised(node) && isMultilines(node)) {
32 context.report(node, 'Missing parentheses around multilines JSX');
36 // --------------------------------------------------------------------------
38 // --------------------------------------------------------------------------
42 VariableDeclarator: function(node) {
46 AssignmentExpression: function(node) {
50 ReturnStatement: function(node) {