Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 55x 55x 55x 55x 760x 495x 265x 265x 55x 390x 55x 760x 390x 390x 370x 55x 760x 760x 45x 760x 760x 760x 760x 10x 10x 760x 760x 55x | const { doc: { builders: { group, hardline, indent, line } } } = require('prettier'); const printComments = require('./print-comments'); const printSeparatedItem = require('./print-separated-item'); const printTrueBody = (node, path, print) => { if (node.trueBody.type === 'Block') { return [' ', path.call(print, 'trueBody')]; } const ifWithinIf = node.trueBody.type === 'IfStatement'; return group( indent([ifWithinIf ? hardline : line, path.call(print, 'trueBody')]) ); }; const printFalseBody = (node, path, print) => node.falseBody.type === 'Block' || node.falseBody.type === 'IfStatement' ? [' ', path.call(print, 'falseBody')] : group(indent([line, path.call(print, 'falseBody')])); const printElse = (node, path, print, commentsBetweenIfAndElse) => { if (node.falseBody) { const elseOnSameLine = node.trueBody.type === 'Block' && commentsBetweenIfAndElse.length === 0; return [ elseOnSameLine ? ' ' : hardline, 'else', printFalseBody(node, path, print) ]; } return ''; }; const IfStatement = { print: ({ node, options, path, print }) => { const comments = node.comments || []; const commentsBetweenIfAndElse = comments.filter( (comment) => !comment.leading && !comment.trailing ); const parts = []; parts.push('if (', printSeparatedItem(path.call(print, 'condition')), ')'); parts.push(printTrueBody(node, path, print)); if (commentsBetweenIfAndElse.length && node.falseBody) { parts.push(hardline); parts.push(printComments(node, path, options)); } parts.push(printElse(node, path, print, commentsBetweenIfAndElse)); return parts; } }; module.exports = IfStatement; |