La détection de la langue de GitHub est effectuée par le module Linguist , qui est commodément open source. Il repose principalement sur l'extension de fichier pour détecter la langue, bien qu'il puisse être un peu intelligent de détecter des fichiers ambigus (tels que des .h
fichiers). Comme vous pouvez le voir dans le fichier de configuration , .c
est fermement défini comme un fichier C. Étant donné le nombre de fichiers qui doivent être évalués sur GitHub, l'efficacité est une exigence clé, si au prix d'une certaine précision.
Il semble que les configurations par dépôt aient été exclues par le développeur, donc la seule façon de mettre en évidence la syntaxe des fichiers comme C ++ serait d'utiliser des extensions C ++. Pour conserver ces extensions et les mettre en surbrillance, vous devrez peut-être essayer un autre service ou héberger le code quelque part vous-même.
Mise à jour d'octobre 2014 : GitHub ne s'est pas arrêté, au cours de la dernière année, ils ont introduit des heuristiques de base pour aider à déterminer la langue dans le fichier. Plus spécifique à ces questions, les .c
fichiers sont maintenant vérifiés pour voir s'ils sont en C, C ++ ou Objective-C.
La réponse du support GitHub est un peu intéressante, ils utilisent des Pygments pour la surbrillance et le lexer, mais les ensembles de règles sont dans leur propre module Linguist. Que vous souhaiteriez qu'ils connaissent!
*.S linguist-language=asm
sans succès .....gitattributes
ligne que vous avez publiée devrait obliger Linguist à reconnaître tous les.S
fichiers comme assemblage. Si cela ne fonctionne pas, je peux jeter un œil au dépôt pour essayer de voir ce qui se passe (avez-vous un lien?).