summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorA Farzat <a@farzat.xyz>2026-06-07 18:46:25 +0300
committerA Farzat <a@farzat.xyz>2026-06-07 18:46:25 +0300
commit94649d3423da0cf02b58c784941cb614a0cfe487 (patch)
tree763a3f07db28844e917bb6b358129cf050daaf44 /src
parentf759052ad0c97fccca67fa7e1a31eebd9c1bf3c4 (diff)
downloadrepo2markdown-94649d3423da0cf02b58c784941cb614a0cfe487.tar.gz
repo2markdown-94649d3423da0cf02b58c784941cb614a0cfe487.zip
Detect uppercase file extensions
Diffstat (limited to 'src')
-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