3 var _br = require('rocambole-linebreak');
4 var _tk = require('rocambole-token');
5 var _ws = require('rocambole-whitespace');
8 exports.format = function ForInStatement(node) {
9 var expressionStart = _tk.findNext(node.startToken, '(');
10 var expressionEnd = _tk.findPrev(node.body.startToken, ')');
12 _br.limit(expressionStart, 'ForInStatementExpressionOpening');
13 _ws.limit(expressionStart, 'ForInStatementExpressionOpening');
15 _br.limit(expressionEnd, 'ForInStatementExpressionClosing');
16 _ws.limit(expressionEnd, 'ForInStatementExpressionClosing');
18 if (node.body.type === 'BlockStatement' && node.body.body.length) {
19 var bodyStart = node.body.startToken;
20 var bodyEnd = node.body.endToken;
22 _br.limit(bodyStart, 'ForInStatementOpeningBrace');
23 _ws.limit(bodyStart, 'ForInStatementOpeningBrace');
25 _br.limit(bodyEnd, 'ForInStatementClosingBrace');
26 _ws.limit(bodyEnd, 'ForInStatementClosingBrace');
28 _ws.limitAfter(expressionEnd, 'ForInStatementExpression');
31 _ws.limitAfter(node.left.endToken, 1);
32 _ws.limitBefore(node.right.startToken, 1);
36 exports.getIndentEdges = function(node) {
40 startToken: node.left.startToken,
41 endToken: node.right.endToken
44 if (node.body.type === 'BlockStatement') {
45 edges.push(node.body);
48 startToken: _tk.findNext(node.right.endToken, ')').next,
49 endToken: node.endToken