prettier-plugin-solidity
Version:
A Prettier Plugin for automatically formatting your Solidity code.
31 lines • 1.31 kB
JavaScript
import { doc } from 'prettier';
import { printAssignmentRightSide, printSeparatedList } from '../common/printer-helpers.js';
const { group, indentIfBreak, line } = doc.builders;
const embraceVariables = (document, embrace) => embrace ? ['(', printSeparatedList(document), ')'] : document;
const initialValue = (node, path, print) => {
if (!node.initialValue) {
return '';
}
return [
' =',
printAssignmentRightSide(path.call(print, 'initialValue'), node.initialValue)
];
};
export const VariableDeclarationStatement = {
print: ({ node, path, print }) => {
const startsWithVar = node.variables.filter((x) => x === null || x === void 0 ? void 0 : x.typeName).length === 0;
const declarationDoc = group([
startsWithVar ? 'var ' : '',
embraceVariables(path.map(print, 'variables'), node.variables.length > 1 || startsWithVar)
], { id: Symbol('VariableDeclarationStatement.variables') });
const initialValueDoc = initialValue(node, path, print);
return group([
declarationDoc,
indentIfBreak(initialValueDoc, {
groupId: declarationDoc.id
}),
node.omitSemicolon ? '' : ';'
]);
}
};
//# sourceMappingURL=VariableDeclarationStatement.js.map