Как установить пользовательское сопоставление расширения с языком на GitHub, не добавляя новый язык в Linguist

В моем репозитории есть несколько файлов *.sb, содержащих исходный код smartBASIC. Файлы не отображаются на языковой панели репозитория (поскольку smartBASIC и связанное с ним расширение имени файла не являются частью определений Linguist по умолчанию).

Сопоставление расширения sb с smartBASIC в файле .gitattributes:

**/*.sb linguist-language=smartBASIC

и обеспечение того, чтобы сопоставление не «игнорировалось»:

**/*.sb linguist-vendored=false
**/*.sb linguist-generated=false
**/*.sb linguist-documentation=false
**/*.sb linguist-detectable=true 

не оказывает должного эффекта. Файлы sb обрабатываются, как и ожидалось, но smartBASIC не является предопределенным языком, поэтому пользовательское сопоставление не дает никакой информации о языковой статистике. (Я проверил это, сопоставив файлы с другим языком (C++) и отобразив их в статистике языковой панели (как C++).

Из других вопросов (Добавить собственный язык в репозиторий GitHub, Пользовательский язык в репозитории github) похоже, что для сопоставления нового расширения с новым языком требуется его добавление в Linguist (точнее, по крайней мере, язык должен быть добавлен). Из документации Linguist ясно, что новые языки/расширения добавляются только после того, как они достаточно представлены в репозиториях GitHub. Это имеет смысл. Однако это также означает, что нет очевидного способа сопоставить расширение sb с языком smartBASIC и отобразить его на языковой панели (например, статистика репо как 60% smartBASIC, 30% Python, 10% другое).

ВОПРОС: Можно ли сопоставить расширение имени файла с новым языком на GitHub с помощью переопределений Linguist, не добавляя новый язык в сам Linguist?

Можно ли использовать другие средства?

(Этот вопрос касается языковой статистики репозитория. Подсветка синтаксиса и другие настройки на данном этапе второстепенны.)


person Petr Vepřek    schedule 08.03.2020    source источник


Ответы (1)


Текущая последняя версия lib/linguist/languages.yml действительно не включает smartBasic.

Можно ли сопоставить расширение имени файла с новым языком на GitHub с помощью переопределений Linguist без добавления нового языка в сам Linguist

Нет, это не поддерживается.
У вас есть такие проблемы, как 3665: "lingust -language=xyz, по-видимому, игнорируется на github, если «xyz» не является известным языком. Предложение: сделать так, чтобы он отображался как неизвестный язык»

Но даже это не принято.

Для добавления поддержки пользовательских имен в языковую панель требуется гораздо больше, чем несколько настроек в Linguist, поскольку изменения на стороне GitHub далеко не тривиальны, и для их реализации потребуется внутренний проект.

person VonC    schedule 09.03.2020
comment
Хорошо, спасибо за подтверждение. Я понимаю причины, почему бы не добавить все возможные языки в Linguist и почему реализация пользовательских тегов (да, тегов, я бы хотел больше одного :-) может быть сложной. Тем не менее, наличие репозиториев с менее распространенными языками (их должно быть довольно много) делает языковую панель гораздо менее полезной (возможно, вводит в заблуждение). На данный момент я решил сопоставить свои sb источники с Text. Таким образом, как минимум полоса указывает на то, что большая часть исходного кода в репозитории не написана на языке Python, - person Petr Vepřek; 09.03.2020
comment
@PetrVepřek Хорошая альтернатива. Согласен, языковую панель нужно доработать. - person VonC; 09.03.2020