resolve method

String? resolve(
  1. Element2? element
)

Implementation

String? resolve(Element2? element) {
  // return early if source is null or element is a core type
  if (element?.firstFragment.libraryFragment?.source == null ||
      _isCoreDartType(element)) {
    return null;
  }

  for (var lib in libs) {
    if (_isCoreDartType(lib)) continue;

    if (lib.exportNamespace.definedNames2.keys
        .contains(element?.firstFragment.name2)) {
      final package =
          lib.firstFragment.libraryFragment?.source.uri.pathSegments.first;
      if (targetFilePath.startsWith(RegExp('^$package/'))) {
        return p.posix
            .relative(
                element?.firstFragment.libraryFragment?.source.uri.path ?? '',
                from: targetFilePath)
            .replaceFirst('../', '');
      } else {
        return element?.firstFragment.libraryFragment?.source.uri.toString();
      }
    }
  }

  return null;
}