#include #include static std::map extensions = { {".c", "C"}, {".h", "C/C++"}, {".cpp", "C++"}, {".cc", "C++"}, {".cxx", "C++"}, {".hpp", "C++"}, {".c++", "C++"}, {".ixx", "C++ module"}, {".m", "Objective-C"}, {".mm", "Objective-C++"}, {".cu", "CUDA"}, {".cuh", "CUDA"}, {".cl", "OpenCL"}, {".rs", "Rust"}, {".zig", "Zig"}, {".swift", "Swift"}, {".b", "B"}, {".d", "D"}, {".di", "D"}, {".dd", "D"}, {".go", "Go"}, {".asm", "Assembly"}, {".S", "Assembly"}, {".s", "Assembly"}, {".ld", "Linker script"}, {".hs", "Haskell"}, {".lhs", "Haskell"}, {".py", "Python"}, {".lua", "Lua"}, {".java", "Java"}, {".sc", "Scala"}, {".scala", "Scala"}, {".cs", "C#"}, {".fs", "F#"}, {".fsi", "F#"}, {".fsx", "F#"}, {".kt", "Kotlin"}, {".kts", "Kotlin"}, {".js", "JavaScript"}, {".mjs", "JavaScript"}, {".cjs", "JavaScript"}, {".jsx", "JavaScript (JSX)"}, {".ts", "TypeScript"}, {".tsx", "TypeScript (JSX)"}, {".vue", "Vue"}, {".txt", "Text"} }; // lazy to add more