UNPKG

prettier-plugin-solidity

Version:

A Prettier Plugin for automatically formatting your Solidity code.

29 lines 1.34 kB
import { NonterminalKind } from '@nomicfoundation/slang/cst'; import { doc, util } from 'prettier'; import { locEnd } from '../slang-utils/loc.js'; import { printComments } from './print-comments.js'; const { hardline } = doc.builders; export function printPreservingEmptyLines(node, path, print, options) { return node.items.length > 0 ? path.map((childPath) => { const node = childPath.node; return [ // Only attempt to prepend an empty line if `node` is not the first item !childPath.isFirst && // YulLabel adds a dedented line so we don't have to prepend a hardline. node.kind !== NonterminalKind.YulLabel ? hardline : '', print(childPath), // Only attempt to append an empty line if `node` is not the last item !childPath.isLast && // Append an empty line if the original text already had an one after the // current `node` util.isNextLineEmpty(options.originalText, locEnd(node)) ? hardline : '' ]; }, 'items') : printComments(node, path, options); } //# sourceMappingURL=print-preserving-empty-lines.js.map