summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/renderer.rs19
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