3 var _tk = require('rocambole-token');
4 var _limit = require('../limit');
7 exports.format = function WhileStatement(node) {
8 var conditionalStart = _tk.findNext(node.startToken, '(');
9 var conditionalEnd = _tk.findPrev(node.body.startToken, ')');
11 _limit.around(conditionalStart, 'WhileStatementConditionalOpening');
13 if (node.body.type === 'BlockStatement') {
14 var bodyStart = node.body.startToken;
15 var bodyEnd = node.body.endToken;
16 _limit.around(bodyStart, 'WhileStatementOpeningBrace');
17 _limit.around(bodyEnd, 'WhileStatementClosingBrace');
18 _limit.around(conditionalEnd, 'WhileStatementConditionalClosing');
20 var next = _tk.findNextNonEmpty(conditionalEnd);
21 _limit.before(conditionalEnd, 'WhileStatementConditionalClosing');
22 if (_tk.isSemiColon(next)) {
23 _limit.after(conditionalEnd, 0);
25 _limit.after(conditionalEnd, 'WhileStatementConditionalClosing');
31 exports.getIndentEdges = function(node) {
34 startToken: _tk.findNext(node.startToken, '('),
35 endToken: _tk.findPrev(node.body.startToken, ')')
39 if (node.body.type !== 'EmptyStatement') {
40 edges.push(node.body);