diff options
Diffstat (limited to 'src/renderer.rs')
| -rw-r--r-- | src/renderer.rs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/renderer.rs b/src/renderer.rs index eb39c76..14d30d6 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -143,7 +143,12 @@ fn human_readable_size(bytes: u64) -> String { } fn detect_language(filename: &Path) -> &'static str { - match filename.extension().and_then(|e| e.to_str()) { + let ext = filename + .extension() + .and_then(|e| e.to_str()) + .map(|e| e.to_ascii_lowercase()); + let ext_str = ext.as_deref(); + match ext_str { Some("rs") => "rust", Some("py") => "python", Some("json") => "json", @@ -265,6 +270,18 @@ mod tests { } #[test] + fn uppercase_extension_is_still_detected() { + let mut output = Vec::new(); + let mut renderer = Renderer::new(&mut output); + + let input = Cursor::new("fn main() {}"); + renderer.render_file(Path::new("MAIN.RS"), input).unwrap(); + let expected = "\n## File: MAIN.RS\n```rust\nfn main() {}\n```\n"; + + assert_eq!(String::from_utf8(output).unwrap(), expected); + } + + #[test] fn renderer_places_placeholder_for_large_files_by_default() { let mut output = Vec::new(); let mut renderer = Renderer::new(&mut output).with_max_file_size(5); // smaller than file |
