writeEnum method
void
writeEnum(
- ArkTSOptions generatorOptions,
- Root root,
- Indent indent,
- Enum anEnum, {
- required String dartPackageName,
override
输出枚举
Implementation
@override
void writeEnum(
ArkTSOptions generatorOptions,
Root root,
Indent indent,
Enum anEnum, {
required String dartPackageName,
}) {
String camelToSnake(String camelCase) {
final RegExp regex = RegExp('([a-z])([A-Z]+)');
return camelCase
.replaceAllMapped(regex, (Match m) => '${m[1]}_${m[2]}')
.toUpperCase();
}
indent.newln();
addDocumentationComments(
indent, anEnum.documentationComments, _docCommentSpec);
indent.write('export enum ${anEnum.name} ');
indent.addScoped('{', '}', () {
enumerate(anEnum.members, (int index, final EnumMember member) {
addDocumentationComments(
indent, member.documentationComments, _docCommentSpec);
indent.writeln(
'${camelToSnake(member.name)}${index == anEnum.members.length - 1 ? '' : ','}');
});
});
}