getElementsFromString function

Iterable<SourceElement> getElementsFromString(
  1. String content,
  2. File file
)

Reads the file content from a string, to avoid having to read the file more than once if the caller already has the content in memory.

The file argument is used to tag the lines with a filename that they came from.

Implementation

Iterable<SourceElement> getElementsFromString(String content, File file) {
  final ParseStringResult parseResult = parseString(
      featureSet: FeatureSet.fromEnableFlags2(
        sdkLanguageVersion: FlutterInformation.instance.getDartSdkVersion(),
        flags: <String>[],
      ),
      content: content);
  final _SourceVisitor<CompilationUnit> visitor =
      _SourceVisitor<CompilationUnit>(file);
  visitor.visitCompilationUnit(parseResult.unit);
  visitor.assignLineNumbers();
  return visitor.elements;
}