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;
}