Answers:
GitHub的语言检测是通过Linguist模块完成的,该模块方便地是开源的。它主要依靠文件扩展名来检测语言,尽管检测不明确的文件(例如.h
文件)可能有点聪明。正如你可以从看到的配置文件,.c
牢固地定义为C文件。考虑到必须在GitHub上评估的文件数量,效率是一项关键要求,即使是以准确性为代价的。
似乎每个回购配置已被开发人员排除,因此像C ++一样突出显示文件语法的唯一方法是使用C ++扩展名。为了保留这些扩展名并突出显示它们,您可能必须尝试其他服务,或者将代码托管在自己的某个位置。
2014年10月更新:GitHub并没有停滞不前,去年他们引入了一些基本的启发式方法来帮助确定文件中的语言。更具体地针对此问题,.c
现在检查文件以查看它们是C,C ++还是Objective-C。
GitHub支持的答案有点有趣,他们确实使用Pygments突出显示和词法分析器,但是规则集在其自己的Linguist模块中。您希望他们知道哪些!
在这里分享我的答案,是我在SO的其他地方发现的。
我发现您可以按照语言学家自述文件在源文件顶部添加vim或emacs modeline (不幸的是,每个文件都需要),以强制Github.com突出显示语法。基于language.yml文件,我认为您需要添加/* vim: syntax=C++ */
到源文件中。
*.S linguist-language=asm
但无济于事。……