962485441ac9ff1233d08e4727312559f9c5b57c
[platform/framework/web/crosswalk-tizen.git] /
1 "use strict";
2
3 var _br = require('rocambole-linebreak');
4 var _tk = require('rocambole-token');
5 var _ws = require('rocambole-whitespace');
6
7
8 exports.format = function ForInStatement(node) {
9   var expressionStart = _tk.findNext(node.startToken, '(');
10   var expressionEnd = _tk.findPrev(node.body.startToken, ')');
11
12   _br.limit(expressionStart, 'ForInStatementExpressionOpening');
13   _ws.limit(expressionStart, 'ForInStatementExpressionOpening');
14
15   _br.limit(expressionEnd, 'ForInStatementExpressionClosing');
16   _ws.limit(expressionEnd, 'ForInStatementExpressionClosing');
17
18   if (node.body.type === 'BlockStatement' && node.body.body.length) {
19     var bodyStart = node.body.startToken;
20     var bodyEnd = node.body.endToken;
21
22     _br.limit(bodyStart, 'ForInStatementOpeningBrace');
23     _ws.limit(bodyStart, 'ForInStatementOpeningBrace');
24
25     _br.limit(bodyEnd, 'ForInStatementClosingBrace');
26     _ws.limit(bodyEnd, 'ForInStatementClosingBrace');
27
28     _ws.limitAfter(expressionEnd, 'ForInStatementExpression');
29   }
30
31   _ws.limitAfter(node.left.endToken, 1);
32   _ws.limitBefore(node.right.startToken, 1);
33 };
34
35
36 exports.getIndentEdges = function(node) {
37   var edges = [];
38
39   edges.push({
40     startToken: node.left.startToken,
41     endToken: node.right.endToken
42   });
43
44   if (node.body.type === 'BlockStatement') {
45     edges.push(node.body);
46   } else {
47     edges.push({
48       startToken: _tk.findNext(node.right.endToken, ')').next,
49       endToken: node.endToken
50     });
51   }
52
53   return edges;
54 };