getFileElements function

Iterable<SourceElement> getFileElements(
  1. File file, {
  2. ResourceProvider? resourceProvider,
})

Gets an iterable over the SourceElements in the given file.

Takes an optional ResourceProvider to allow reading from a memory filesystem.

Implementation

Iterable<SourceElement> getFileElements(File file,
    {afs.ResourceProvider? resourceProvider}) {
  resourceProvider ??= afs.PhysicalResourceProvider.INSTANCE;
  final ParseStringResult parseResult = parseFile(
      featureSet: FeatureSet.fromEnableFlags2(
        sdkLanguageVersion: FlutterInformation.instance.getDartSdkVersion(),
        flags: <String>[],
      ),
      path: file.absolute.path,
      resourceProvider: resourceProvider);
  final _SourceVisitor<CompilationUnit> visitor =
      _SourceVisitor<CompilationUnit>(file);
  visitor.visitCompilationUnit(parseResult.unit);
  visitor.assignLineNumbers();
  return visitor.elements;
}