start implement generator code

This commit is contained in:
Sergey Penkovsky
2025-05-16 09:30:30 +03:00
parent 9b0741199c
commit b906e927c3
29 changed files with 535 additions and 102 deletions

View File

@@ -0,0 +1,33 @@
import 'package:source_gen/source_gen.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:build/build.dart';
import 'package:cherrypick_annotations/cherrypick_annotations.dart';
class InjectableGenerator extends GeneratorForAnnotation<Injectable> {
@override
generateForAnnotatedElement(
Element element, ConstantReader annotation, BuildStep buildStep) {
if (element is! ClassElement) return null;
final className = element.name;
// Используйте уникальное имя функции (например, привязанное к файлу/классу)
return '''
void \$initCherrypickGenerated() {
print("Generate code success $className");
}
''';
}
}
Builder injectableBuilder(BuilderOptions options) =>
PartBuilder([InjectableGenerator()], '.cherrypick_injectable.g.dart');
/*
Builder injectableBuilder(BuilderOptions options) => SharedPartBuilder(
[InjectableGenerator()],
'injectable',
allowSyntaxErrors: true,
writeDescriptions: true,
);
*/