languageForPath method
Guesses the language of a file from its extension or name, using
filename overrides, language names and aliases. lib/main.dart,
pubspec.yaml, deploy.sh, README.md and Dockerfile all resolve
with the bundled languages. Both / and \ separate directories.
Implementation
Language? languageForPath(String path) {
final name = path.split(_pathSeparator).last.toLowerCase();
if (name.isEmpty) return null;
final exact = _pathLanguages[name];
if (exact != null) return language(exact);
for (
var dot = name.indexOf('.');
dot >= 0;
dot = name.indexOf('.', dot + 1)
) {
final override = _pathLanguages[name.substring(dot)];
if (override != null) return language(override);
}
final exactLanguage = _byName[name];
if (exactLanguage != null) return exactLanguage;
for (
var dot = name.indexOf('.', 1);
dot >= 0;
dot = name.indexOf('.', dot + 1)
) {
final match = _byName[name.substring(dot + 1)];
if (match != null) return match;
}
return null;
}