91

私は最近、JavaScript と C++ の両方で github プロジェクトに取り組んでおり、github がプロジェクトを C++ としてタグ付けしていることに気付きました。単一の言語を選択する必要がある場合、C++ コードは JavaScript ライブラリとしてコンパイルされるため、これはおそらく正しい指定ですが、これは疑問に思いました... github は各プロジェクトにタグを付ける言語をどのように判断するのでしょうか?

4

5 に答える 5

88

2013 年 4 月更新、nuclearsandwich (GitHub サポート チームまたは「supportocat」) による:

目的の言語が構文の強調表示を受けていない場合は、Linguist ライブラリに貢献して追加することができます。


(元の回答、2012 年 10 月)

GitHub サポートのこのスレッドでは、次のように説明されています。

各拡張子のファイルサイズを合計するだけです。最大のものは「勝つ」。

ファイルを開いてその内容を解析することはプロセスを遅くするため、避けたいと考えています... しかし、このような競合を解決するにはそれが唯一の方法かもしれません。

これは 100% 正確ではないため、次のように追加する人もいます。

私も、推測が間違っている場合に備えて、単純な手動オーバーライド スイッチに投票します。


注:マーク・ルシャコフが彼の回答で言及しているように(賛成)、それ以来、言語学者プロジェクト(2011年6月からオープンソース)で推測が改善されました。
ただし、まだ問題があることがわかります: GitHub Linguist Issues
詳細については、こちらを参照してください。

言語が検出されると、実際の構文の強調表示を行うPygmentsラッパーであるAlbinoに渡されます。

また、言語ディレクティブを .gitattributes ファイルに追加できます

于 2011-03-15T22:07:50.693 に答える
14

現在、Githubの言語学者プロジェクトは、このGithubブログ投稿(この質問が最初に尋ねられてから数か月後に出てきた)で説明されているように、言語統計を決定するために使用されるものです。

于 2012-04-06T18:23:56.913 に答える
1

言語学者をいじくり回した後、私はこれに気づきました。

シバンを持つファイルの場合、言語を決定する際にシバンが考慮されますが、他の トークンに対して均等に重み付けされているようです。シバンはファイルの言語を明確に定義する必要があるため、これは大きなエラーのようです。

これにより、強調表示に問題が発生する可能性があります。

于 2012-12-21T02:45:44.707 に答える
-1

ファイル拡張子が最初に頭に浮かぶものです。

于 2011-03-15T22:01:38.073 に答える