yek/
defaults.rs

1/// Known binary file extensions that should be skipped
2#[rustfmt::skip]
3pub const BINARY_FILE_EXTENSIONS: &[&str] = &[
4    // Executables, Libraries, Core Dumps
5    "exe", "dll", "so", "dylib", "ocx", "ax", "drv", "sys", "msi", "app", "ipa", "apk",
6    "bin", "out", "a", "lib", "ko", "elf", "o", "nro", "core", "img", "iso",
7
8    // Java / .NET / Archives
9    "class", "jar", "war", "ear",
10    "resources", // sometimes included in Java archives
11    "nupkg", // NuGet package
12    "exe.config", // sometimes for .NET
13    "dll.config",
14    
15    // Archives & Compressed
16    "zip", "tar", "gz", "tgz", "bz2", "xz", "7z", "rar", "lz4", "lz", "zst", "lzma",
17    "cab", "ar", "cpio", "rpm", "deb", "pkg", "crx", "bin", "dmg", "hfs", "img",
18    "cso", // Compressed ISO
19    "bz", "tbz", "tbz2", "tlz", "txz", "z", "Z", "apk", "xapk",
20
21    // Disk & Container Images
22    "iso", "img", "dmg", "vhd", "vhdx", "vmdk", "vdi", "qcow", "qcow2",
23    "mdf", "mds", "nrg", "uif",
24
25    // Documents & Office
26    "pdf",
27    "doc", "docx", "dot", "dotx", "docm", "dotm",
28    "xls", "xlsx", "xlsm", "xlsb", "xlt", "xltx", "xltm", "xlc", "xlw",
29    "ppt", "pptx", "pptm", "pps", "ppsx", "pot", "potx", "potm",
30    "pub",  // Microsoft Publisher
31    "vsd", "vsdx", // Visio
32    "accdb", "accde", "mdb", "mde", // Access
33    "odt", "ods", "odp", "odg", "odf", // OpenDocument
34    "pages", "numbers", "key", // Apple iWork
35    "rtf", // can be binary-like depending on usage
36
37    // Spreadsheets, DB, and Misc Data
38    "db", "sqlite", "db3", "s3db", "frm", "myd", "myi", // MySQL
39    "mdb", "bak", "nsf", // Lotus Notes
40    "gdb", "fdb", // Firebird
41    "mdb", // Access DB
42    "wdb", // Works DB
43
44    // Images
45    "jpg", "jpeg", "png", "gif", "bmp", "ico", "tiff", "tif", "webp", "jfif", "jp2",
46    "psd", "psb", "xcf", "ai", "eps", "raw", "arw", "cr2", "nef", "dng", "raf", "orf",
47    "sr2", "heic", "heif", "icns", "img", "bpg",
48
49    // Audio
50    "mp3", "mp2", "aac", "ac3", "wav", "ogg", "oga", "flac", "alac", "m4a", "mp4a",
51    "wma", "ra", "ram", "ape", "opus", "amr", "awb",
52
53    // Video
54    "mp4", "m4v", "mov", "avi", "wmv", "mkv", "flv", "f4v", "f4p", "f4a", "f4b", "3gp",
55    "3g2", "mpeg", "mpg", "mpe", "m1v", "m2v", "ts", "mts", "m2ts", "vob", "rm", "rmvb",
56    "asf", "ogv", "ogm", "webm", "dv", "divx", "xvid",
57
58    // Font Files
59    "ttf", "otf", "woff", "woff2", "eot", "fon", "psf",
60
61    // Firmware / BIOS / ROM / Game Data
62    "rom", "iso", "bin", "gba", "gbc", "nds", "n64", "z64", "v64", "gcm", "ciso", "wbfs",
63    "pak", "wad", "dat", "sav", "rpx",
64
65    // Flash / Vector
66    "swf", "fla", "svgz", // .svgz is compressed SVG (binary)
67
68    // CAD / 3D
69    "dwg", "dxf", "dwf", "skp", "ifc",
70    "stl", "obj", "fbx", "dae", "blend", "3ds", "ase", "gltf", "glb",
71    
72    // E-Books
73    "epub", "mobi", "azw", "azw3", "fb2", "lrf", "lit", "pdb",
74
75    // Other
76    "swp", "swo", // Vim swap files
77    "pch", // Precompiled header
78    "xex", "elf", // Console executables
79    "dmp", "mdmp", // Memory dump
80    "bkf", "bkp", // Backup
81    "pak", // Common game data archives
82    "idx", "dat", "vcd", // Various binary data
83    "icns", // macOS icon
84    "hlp", "chm", // Windows help
85    "torrent", // BitTorrent
86    "mar", // Mozilla archive
87    "qcow", "qcow2", // QEMU disk
88    "apk", "aab", // Android package/bundle
89    "crx", // Chrome extension
90    "appx", // Windows app package
91    "xap", // Windows Phone app
92];
93
94/// Default sets of ignore patterns (separate from .gitignore)
95pub const DEFAULT_IGNORE_PATTERNS: &[&str] = &[
96    "LICENSE",
97    ".git/**",
98    ".next/**",
99    "node_modules/**",
100    "vendor/**",
101    "dist/**",
102    "build/**",
103    "out/**",
104    "target/**",
105    "bin/**",
106    "obj/**",
107    ".idea/**",
108    ".vscode/**",
109    ".vs/**",
110    ".settings/**",
111    ".gradle/**",
112    ".mvn/**",
113    ".pytest_cache/**",
114    "__pycache__/**",
115    ".sass-cache/**",
116    ".vercel/**",
117    ".turbo/**",
118    "coverage/**",
119    "test-results/**",
120    ".gitignore",
121    "pnpm-lock.yaml",
122    "yek.toml",
123    "yek.yaml",
124    "yek.json",
125    "package-lock.json",
126    "yarn.lock",
127    "Cargo.lock",
128    "Gemfile.lock",
129    "composer.lock",
130    "mix.lock",
131    "poetry.lock",
132    "Pipfile.lock",
133    "packages.lock.json",
134    "paket.lock",
135    "*.pyc",
136    "*.pyo",
137    "*.pyd",
138    "*.class",
139    "*.o",
140    "*.obj",
141    "*.dll",
142    "*.exe",
143    "*.so",
144    "*.dylib",
145    "*.log",
146    "*.tmp",
147    "*.temp",
148    "*.swp",
149    "*.swo",
150    ".DS_Store",
151    "Thumbs.db",
152    ".env*",
153    "*.bak",
154    "*~",
155];
156
157pub const DEFAULT_OUTPUT_TEMPLATE: &str = ">>>> FILE_PATH\nFILE_CONTENT";