UNPKG

prettier-plugin-solidity

Version:

A Prettier Plugin for automatically formatting your Solidity code.

29 lines 1.1 kB
import { doc } from 'prettier'; import { NonterminalKind } from '@nomicfoundation/slang/cst'; import { createKindCheckFunction } from '../slang-utils/create-kind-check-function.js'; import { getNodeMetadata, updateMetadata } from '../slang-utils/metadata.js'; import { Statement } from './Statement.js'; const { group, indent, line } = doc.builders; const isIfStatementOrBlock = createKindCheckFunction([ NonterminalKind.Block, NonterminalKind.IfStatement ]); export class ElseBranch { constructor(ast, options) { this.kind = NonterminalKind.ElseBranch; let metadata = getNodeMetadata(ast); this.body = new Statement(ast.body, options); metadata = updateMetadata(metadata, [this.body]); this.comments = metadata.comments; this.loc = metadata.loc; } print(path, print) { return [ 'else', isIfStatementOrBlock(this.body.variant) ? [' ', path.call(print, 'body')] : group(indent([line, path.call(print, 'body')])) ]; } } //# sourceMappingURL=ElseBranch.js.map