prettier-plugin-solidity
Version:
A Prettier Plugin for automatically formatting your Solidity code.
26 lines (21 loc) • 664 B
text/typescript
import { NonterminalKind } from '@nomicfoundation/slang/cst';
import type { ContractSpecifier } from '../slang-nodes/ContractSpecifier.js';
export function sortContractSpecifiers(
a: ContractSpecifier,
b: ContractSpecifier
): number {
const aVariant = a.variant;
const bVariant = b.variant;
// OverrideSpecifiers before ModifierInvocation
if (
aVariant.kind === NonterminalKind.InheritanceSpecifier &&
bVariant.kind === NonterminalKind.StorageLayoutSpecifier
)
return -1;
if (
bVariant.kind === NonterminalKind.InheritanceSpecifier &&
aVariant.kind === NonterminalKind.StorageLayoutSpecifier
)
return 1;
return 0;
}