macro_util 0.1.0-13.dev  macro_util: ^0.1.0-13.dev copied to clipboard
macro_util: ^0.1.0-13.dev copied to clipboard
Helpers and utilities for developing macros: field introspection, generated code formatting, etc.
Helpers and utilities for developing macros.
Log information in into the augmenting library as code comments #
builder.log('Got here.');
Output:
// Got here.
Introspect all fields of a type #
final map = await builder.introspectFields(clazz);
final type = map['fieldName']!.typeDeclaration;
Indent the generated code #
builder.declareInLibrary(
  DeclarationCode.fromParts([
    'augment class Foo {\n',
    ..._getMyMethodParts().indent(), // Adds 2 spaces before each line of the code.
    '}\n',
  ]),
);
Report errors with 5 less lines of code #
builder.reportError('Error message', target: target);
...instead of
builder.report(
  Diagnostic(
    DiagnosticMessage('Error message', target: target),
    Severity.error,
  ),
);