prettier-plugin-solidity
Version:
A Prettier Plugin for automatically formatting your Solidity code.
17 lines • 924 B
JavaScript
// https://prettier.io/docs/en/plugins.html#parsers
import { SourceUnit as SlangSourceUnit } from '@nomicfoundation/slang/ast';
import { clearComments, clearOffsets } from './slang-nodes/SlangNode.js';
import { createParser } from './slang-utils/create-parser.js';
import { SourceUnit } from './slang-nodes/SourceUnit.js';
export default function parse(text, options) {
const { parser, parseOutput } = createParser(text, options);
// We update the compiler version by the inferred one.
options.compiler = parser.languageVersion;
const parsed = new SourceUnit(new SlangSourceUnit(parseOutput.tree.asNonterminalNode()), options);
// Because of comments being extracted like a Russian doll, the order needs
// to be fixed at the end.
parsed.comments = clearComments().sort((a, b) => a.loc.start - b.loc.start);
clearOffsets();
return parsed;
}
//# sourceMappingURL=slangSolidityParser.js.map