ba8c9bb69d56d541e066dcefc95c5b3f76cd2c86
[platform/framework/web/crosswalk-tizen.git] /
1 "use strict";
2
3 var _tk = require('rocambole-token');
4 var _ws = require('rocambole-whitespace');
5 var _limit = require('../limit');
6
7
8 exports.format = function ForStatement(node) {
9   var semi_1 = _tk.findNext(node.startToken, ';');
10   var semi_2 = _tk.findPrev(node.body.startToken, ';');
11   _ws.limit(semi_1, 'ForStatementSemicolon');
12   _ws.limit(semi_2, 'ForStatementSemicolon');
13
14   var expressionStart = _tk.findNext(node.startToken, '(');
15   var expressionEnd = _tk.findPrev(node.body.startToken, ')');
16   _limit.around(expressionStart, 'ForStatementExpressionOpening');
17   _limit.around(expressionEnd, 'ForStatementExpressionClosing');
18
19   if (node.body.type === 'BlockStatement') {
20     var bodyStart = node.body.startToken;
21     var bodyEnd = node.body.endToken;
22     _limit.around(bodyStart, 'ForStatementOpeningBrace');
23     _limit.around(bodyEnd, 'ForStatementClosingBrace');
24   }
25 };
26
27
28 exports.getIndentEdges = function(node) {
29   var edges = [];
30
31   var args = {
32     startToken: _tk.findNext(node.startToken, '('),
33     endToken: _tk.findPrev(node.body.startToken, ')')
34   };
35   edges.push(args);
36
37   if (node.body.type === 'BlockStatement') {
38     edges.push(node.body);
39   } else {
40     edges.push({
41       startToken: args.endToken,
42       endToken: node.endToken
43     });
44   }
45
46   return edges;
47 };