pub fn detect(path: &Path, first_line: Option<&str>) -> Option<LanguageSpec>
Exact basename wins over extension, which wins over the bounded shebang. Non-UTF-8 filename bytes never become a lossy path used for I/O.