🏷️ Priorité : BASSE | Type : Enhancement
Contexte
Le mapping CODE_EXTENSIONS dans chunking_utils.py utilise uniquement l'extension de fichier pour détecter le langage. Les fichiers identifiés par leur nom complet (pas d'extension) ne sont pas supportés.
Référence : commentaire existant lignes 194-195 de chunking_utils.py.
Fichiers non supportés actuellement
| Fichier |
Langage |
Fréquence |
Makefile |
make |
Très courant |
Dockerfile |
dockerfile |
Très courant |
CMakeLists.txt |
cmake |
Courant (C/C++) |
Jenkinsfile |
groovy |
Courant (CI) |
.gitignore |
gitignore |
Très courant |
Vagrantfile |
ruby |
Moins courant |
Correction attendue
1. Ajouter un mapping filename-based
# chunking_utils.py, après CODE_EXTENSIONS :
FILENAME_LANGUAGES = {
"Makefile": "make",
"Dockerfile": "dockerfile",
"CMakeLists.txt": "cmake",
"Jenkinsfile": "groovy",
}
2. Modifier get_language_from_extension()
def get_language_from_path(file_path: str) -> Optional[str]:
filename = Path(file_path).name
# D'abord chercher par nom exact
if filename in FILENAME_LANGUAGES:
return FILENAME_LANGUAGES[filename]
# Puis par extension
ext = Path(file_path).suffix.lower()
return CODE_EXTENSIONS.get(ext)
3. Vérifier le support tree-sitter
Pas tous ces langages ont un parser tree-sitter. Vérifier dans tree-sitter-language-pack avant d'ajouter. Si pas de parser → fallback sur traditional chunking (déjà géré).
Critères de succès
🏷️ Priorité : BASSE | Type : Enhancement
Contexte
Le mapping
CODE_EXTENSIONSdanschunking_utils.pyutilise uniquement l'extension de fichier pour détecter le langage. Les fichiers identifiés par leur nom complet (pas d'extension) ne sont pas supportés.Référence : commentaire existant lignes 194-195 de
chunking_utils.py.Fichiers non supportés actuellement
MakefileDockerfileCMakeLists.txtJenkinsfile.gitignoreVagrantfileCorrection attendue
1. Ajouter un mapping filename-based
2. Modifier
get_language_from_extension()3. Vérifier le support tree-sitter
Pas tous ces langages ont un parser tree-sitter. Vérifier dans
tree-sitter-language-packavant d'ajouter. Si pas de parser → fallback sur traditional chunking (déjà géré).Critères de succès
get_language_from_extension()vérifie le nom complet d'abord