✏️ Fix: [#95] 커밋 파일 목록 페이지네이션, 커밋 파일 확장자와 코드 언어 매핑
This commit is contained in:
69
common/utils/mapManager.py
Normal file
69
common/utils/mapManager.py
Normal file
@@ -0,0 +1,69 @@
|
||||
import os
|
||||
|
||||
|
||||
def guess_language_from_path(path: str) -> str:
|
||||
_, ext = os.path.splitext(path or "")
|
||||
ext = ext.lower()
|
||||
|
||||
ext_to_lang = {
|
||||
# Web
|
||||
".js": "javascript",
|
||||
".mjs": "javascript",
|
||||
".cjs": "javascript",
|
||||
".ts": "typescript",
|
||||
".tsx": "typescript",
|
||||
".jsx": "javascript",
|
||||
".html": "html",
|
||||
".htm": "html",
|
||||
".css": "css",
|
||||
".scss": "scss",
|
||||
".sass": "sass",
|
||||
".less": "less",
|
||||
|
||||
# Backend / General
|
||||
".py": "python",
|
||||
".java": "java",
|
||||
".kt": "kotlin",
|
||||
".kts": "kotlin",
|
||||
".go": "go",
|
||||
".rb": "ruby",
|
||||
".php": "php",
|
||||
".cs": "csharp",
|
||||
".rs": "rust",
|
||||
".c": "c",
|
||||
".h": "c", # 프로젝트에 따라 c/cpp 헤더지만 일단 c로
|
||||
".cpp": "cpp",
|
||||
".cc": "cpp",
|
||||
".cxx": "cpp",
|
||||
".hpp": "cpp",
|
||||
".hh": "cpp",
|
||||
".swift": "swift",
|
||||
|
||||
# Shell / Infra
|
||||
".sh": "bash",
|
||||
".bash": "bash",
|
||||
".zsh": "zsh",
|
||||
".ps1": "powershell",
|
||||
".dockerfile": "dockerfile", # 보통 안 걸림. 아래 별도 처리도 참고.
|
||||
".yml": "yaml",
|
||||
".yaml": "yaml",
|
||||
".json": "json",
|
||||
".toml": "toml",
|
||||
".ini": "ini",
|
||||
|
||||
# Data / Docs
|
||||
".md": "markdown",
|
||||
".txt": "text",
|
||||
".sql": "sql",
|
||||
".xml": "xml",
|
||||
".csv": "csv",
|
||||
}
|
||||
|
||||
# 확장자 없는 케이스들 (대표적으로 Dockerfile 등)
|
||||
base = os.path.basename(path or "").lower()
|
||||
if base == "dockerfile":
|
||||
return "dockerfile"
|
||||
if base in {"makefile"}:
|
||||
return "makefile"
|
||||
|
||||
return ext_to_lang.get(ext, "text")
|
||||
Reference in New Issue
Block a user