mapDeclarations static method

List<MappedDeclaration> mapDeclarations(
  1. CompilationUnit unit,
  2. LineInfo lineInfo,
  3. List<LineRange> ranges, {
  4. bool includeMembers = true,
})

Maps ranges to enclosing declarations in unit.

If includeMembers is true (default), class/mixin/extension members (methods, constructors, fields) are also mapped individually alongside their enclosing parent declaration.

Implementation

static List<MappedDeclaration> mapDeclarations(
  CompilationUnit unit,
  LineInfo lineInfo,
  List<LineRange> ranges, {
  bool includeMembers = true,
}) {
  if (ranges.isEmpty) return const [];

  final visitor = _DeclarationLineVisitor(
    lineInfo: lineInfo,
    ranges: ranges,
    includeMembers: includeMembers,
  );
  unit.accept(visitor);
  return visitor.results;
}