getSourceCode method

Future<String> getSourceCode(
  1. BuildStep step
)

Implementation

Future<String> getSourceCode(BuildStep step) async {
  if (sourcesCache.containsKey(hashCode)) {
    return sourcesCache[hashCode]!;
  }
  String part = '';
  try {
    // TODO: https://github.com/dart-lang/build/issues/2634
    // find better way to get method source?
    ParsedLibraryResult result =
        session!.getParsedLibraryByElement(library) as ParsedLibraryResult;
    part = result.getFragmentDeclaration(firstFragment)!.node.toSource();
  } on InconsistentAnalysisException {
    var resolver = step.resolver;
    ResolvedLibraryResult result = await _getResolvedLibrary(
      library,
      resolver,
    );
    part = result.getFragmentDeclaration(firstFragment)!.node.toSource();
  }
  //named parameters can be defined
  part = part.substring(part.indexOf(') {') + 3, part.length - 1);
  sourcesCache[hashCode] = part;
  //part = '//method_hash:' + this.hashCode.toString() + "\n" + part;
  return part;
}