GitHub の「主要言語」

GitHub のホームを開くと、各プロジェクトに主要言語が表示されるー

自分の場合、以前は「C」、「C++」などで、どのようなロジックで表示されてるのか疑問だった。
調べると、コミットしてあるファイルの拡張子などから、集計を取り、一番多い「言語」を表示している事が判った。
「主要言語」が「C++」でも、「C」のライブラリなどがプロジェクトにコミットされていて、単純にCのソース数がC++ソース数を上回ると、「C」と表示されてしまう・・
※自分のプロジェクトでは、C++はヘッダーのみの場合がほとんどで、ソースは必要無いので、ソースの数は1/2で、評価が意図と異なる。
githubの検索などでは「言語」をキーに検索する事もできるので、これは、意図と違う結果になってしまう。
そこで、調べると、「.gitattribute」ファイルをプロジェクトのルートに置いて、このファイルで、集計を除外する事で、「主要言語」の評価を変えられる事が判った。

RTK5_NESEMU/emu/* linguist-vendored
ff12b/src/* linguist-vendored
zlib/* linguist-vendored
libmad/* linguist-vendored
jpeg-6b/* linguist-vendored
RX65x/drw_2d_ver1.02/* linguist-vendored

たとえば、「RX」プロジェクトは↑のように、ライブラリを除外してある。

これで、「主要言語」の評価を「C++」に出来た。

※上記の「バー」をクリックすると、ファイルと言語のプロパティが表示される。

さらに、「言語」をクリックすると、どのファイルがその言語と認識されているか詳細が表示できるので、「意図」と合わないファイルは、「.gitattribute」で、細かく指定できる。