답변:
GitHub의 언어 탐지 는 편리한 오픈 소스 인 Linguist 모듈에 의해 수행됩니다 . 모호한 파일 (예 : .h
파일) 을 감지하는 데 약간 영리 할 수 있지만 주로 언어를 감지하기 위해 파일 확장자를 사용 합니다. 당신은에서 볼 수 있듯이 구성 파일 , .c
단단히 C 파일로 정의된다. GitHub에서 평가해야하는 파일의 수를 감안할 때 약간의 정확성이 요구되는 경우 효율성이 핵심 요구 사항입니다.
리포지토리 별 구성이 개발자에 의해 배제 된 것처럼 보이 므로 C ++에서 C ++ 확장명을 사용하는 것만으로 파일 구문을 강조 표시 할 수있는 유일한 방법입니다. 이러한 확장을 유지하고 강조 표시하려면 다른 서비스를 시도하거나 자신이있는 곳에서 코드를 호스팅해야 할 수도 있습니다.
2014 년 10 월 업데이트 : GitHub는 여전히 서 있지 않았습니다. 작년 에는 파일의 언어를 결정하는 데 도움이되는 몇 가지 기본 휴리스틱 을 도입했습니다 . 이 질문에 더 구체적으로, .c
파일이 C, C ++ 또는 Objective-C인지 확인합니다.
GitHub 지원의 답변 은 약간 흥미 롭습니다. 피그먼트를 강조 표시하고 어휘 분석기를 사용하지만 규칙 세트는 자체 언어 학자 모듈에 있습니다. 그들이 알기를 바랐습니다!
여기에 내 대답을 공유 하면 SO의 다른 곳에서 발견 되었습니다 .
Linguist readme 에 따라 vim 또는 emacs modeline을 소스 파일 상단에 추가 하여 불행히도 Github.com의 구문 강조를 강요 할 수 있음을 발견했습니다 . languages.yml 파일을 기반으로 /* vim: syntax=C++ */
소스 파일 에 추가해야한다고 생각 합니다.
이제 언어 학자 재정의를 사용하여 리포지토리에있는 파일의 언어를 강제로 지정할 수 있습니다 . 언어학 자는 github.com에서 파일의 언어를 감지하는 오픈 소스 라이브러리입니다.
.c
C ++ 문법을 사용 하여 파일을 강조 표시 하려면 파일에 다음을 추가 .gitattributes
하십시오.
*.c linguist-language=C++
.gitattributes
게시 한 줄은 언어학자가 모든 .S
파일을 어셈블리 로 인식하도록합니다 . 작동하지 않으면 저장소를 살펴보고 무슨 일이 일어나고 있는지 볼 수 있습니다 (링크가 있습니까?).
*.S linguist-language=asm
쓸모없는 것으로 시도했습니다 ....