String _dartApiLink()

in lib/documentation.dart [136:178]


  String _dartApiLink(String? libraryName) {
    if (libraryName == null ||
        libraryName.isEmpty ||
        libraryName == 'main.dart') {
      return '';
    }

    final usingFlutter = hasFlutterContent(_sourceProvider.dartSource);
    final isDartLibrary = libraryName.contains('dart:');

    // Only can link to library docs for dart libraries or `package:flutter`.
    if (isDartLibrary || usingFlutter) {
      if (usingFlutter) {
        final splitFlutter = libraryName.split('/');

        if (splitFlutter[0] == 'package:flutter') {
          splitFlutter.removeAt(0);
          // Find library name, either after package declaration or `src`.
          libraryName = splitFlutter
              .firstWhere((element) => element != 'src')
              .replaceAll('.dart', '');
        } else if (!isDartLibrary) {
          // If it's not a Flutter or Dart library, return just the name.
          return libraryName;
        }
      }

      final apiLink = StringBuffer('[Open library docs](');

      if (usingFlutter) {
        apiLink.write('https://api.flutter.dev/flutter');
      } else {
        apiLink.write('https://api.dart.dev/stable');
      }

      libraryName = libraryName.replaceAll(':', '-');
      apiLink.write('/$libraryName/$libraryName-library.html)');

      return apiLink.toString();
    }

    return libraryName;
  }