回答:
GitHubの言語検出は、便利なオープンソースであるLinguistモジュールによって行われます。言語の検出は主にファイル拡張子に依存しますが、あいまいなファイル(ファイルなど.h
)の検出には少し賢い場合があります。構成ファイルからわかるように、.c
はCファイルとしてしっかりと定義されています。GitHubで評価する必要のあるファイルの数を考えると、ある程度の精度を犠牲にしても、効率は重要な要件です。
リポジトリごとの構成は開発者によって除外されているように見えるため、C ++としてファイル構文を強調表示できる唯一の方法は、C ++拡張機能を使用することです。これらの拡張機能を保持して強調表示するには、別のサービスを試すか、自分でコードをホストする必要があります。
2014年10月の更新:GitHubはまだ立ち止まっておらず、昨年、ファイル内の言語を判断するための基本的なヒューリスティックを導入しました。この質問にさらに具体的に.c
は、ファイルがC、C ++、またはObjective-Cであるかどうかが確認されるようになりました。
GitHubサポートの答えは少しおもしろいです。彼らは強調表示とレクサーにPygmentsを使用しますが、ルールセットは独自のLinguistモジュールにあります。あなたが彼らが知っていることを願っています!
ソースファイルの先頭にLinguistのREADMEに従ってvimまたはemacsモードラインを追加して(残念ながら、各ファイルに必要)、Github.comの構文の強調表示を強制できることを発見しました。languages.ymlファイルに基づいて、/* vim: syntax=C++ */
ソースファイルに追加する必要があると思います。
Linguistオーバーライドを使用して、リポジトリ内の任意のファイルの言語を強制できるようになりました。Linguistは、github.comのファイルの言語を検出するオープンソースライブラリです。
.c
C ++文法を使用してファイルを強調表示するには、.gitattributes
ファイルに次を追加します。
*.c linguist-language=C++
.gitattributes
あなたが投稿行がすべて認識する言語学者を強制すべきである.S
アセンブリなどのファイルを。うまくいかない場合は、リポジトリを見て、何が起こっているのかを確認することができます(リンクはありますか?)。
*.S linguist-language=asm
....無駄に