resolve method

String? resolve(
  1. Element2? element
)

Implementation

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

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

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

  return null;
}