GitHub открыла Linguist — библиотеку для определения языка программирования

Опубликовано: 6 июля 2011 г., среда

 

Разработчики популярного сервиса GitHub опубликовали исходный код одного из собственных инструментов — библиотеки Linguist (на Ruby), используемой для определения языка программирования, на котором написан публикуемый на хостинге файл.

В первую очередь Linguist учитывает расширение файла — это позволяет определить язык программирования в большинстве случаев. Если не помогает, то проверяется наличие так называемого «shebang» (последовательность символов «#!», принятая для последующего указания интерпретатора, которому передается контент скрипта). Кроме того, изучается и непосредственно содержимое файлов, где по различным популярным ключевым фразам осуществляется окончательная попытка определить используемый язык программирования.

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

  • подсветка синтаксиса, реализованная с помощью своей обертки Albino над Pygments;
  • определение типа MIME: большая часть работы осуществляется стандартной mime–types gem из Ruby, но авторы сделали несколько добавок и надстроек;
  • статистический модуль, с помощью которого строится Language Graph на GitHub (составляет список используемых в проекте языков программирования и их популярность) и общий рейтинг Top Languages.

Исходный код библиотеки Linguist распространяется под Open Source–лицензией MIT и доступен, естественно, на самом GitHub.

Источник: GitHub, h-online.com, nixp.ru
Копировать, распространять, публиковать информацию портала News.lt без письменного согласия редакции запрещено.

Комментарии Facebook

Новый комментарий


Captcha

Andromeda – будущая операционная система от компании Google

Andromeda является попыткой Google слить две совершенно разные операционные системы Android и Chrome OS в одну систему, с которой пользователи смогут работать на всевозможных мобильных устройствах — смартфонах, лептопах и планшетах. дальше »

Apple выпустила iOS 10.3 beta 1 для iPhone, iPad и iPod touch

Apple выпустила iOS 10.3 beta 1 для iPhone, iPod touch и iPad. Тестовый релиз стал доступен на следующей день после выхода финальной версии iOS 10.2.1. дальше »

Второе поколение смарт–хронометров Moto 360 получит Android 2.0 Wear

Последние несколько месяцев были «невезучими» для Android Wear — платформы Google для носимых устройств и, в частности, для смарт–хронометров. дальше »

Microsoft предупреждает о завершении поддержки Windows 7 через три года

Microsoft рекомендует пользователям Windows 7 перейти на Windows 10 посредством обновления. дальше »

Microsoft выпустила альфа-версию Skype 1.15 для Linux

Компания Microsoft уже в новом году обновила приложение Skype на платформе Linux до версии 1.15. Хотя обновление небольшое, оно содержит рял полезных улучшений для пользователей компьютеров на Linux. дальше »

Китайская компания покупает финскую Rightware

Финский поставщик программного обеспечения для автомобильного пользовательского интерфейса, Rightware был приобретен китайской компанией Thundersoft, являющейся крупным поставщиком операционных систем и технологии платформы для интеллектуальных устройств. дальше »

Apple заблокировала утилиту для отката на старые версии iOS

Всего через двое суток после релиза финальной версии утилиты Prometheus, которая позволяла откатываться на предыдущие версии iOS, Apple заблокировала ее работу. дальше »

Проект CyanogenMod прекращает своё существование в пользу форка Lineage

Команда разработчиков проекта CyanogenMod официально объявила о создании форка Lineage и переходе к его развитию. дальше »

Wycheproof ­— Open Source–проект Google для проверки криптографических библиотек

Компания Google объявила о выпуске своего нового проекта — Project Wycheproof, — представляющего набор тестов безопасности, которые проверяют криптографические библиотеки на известные уязвимости. дальше »

Kickstarter открывает код своих приложений для Android и iOS

Crowdfunding–сервис Kickstarter объявил о публикации исходного кода своих приложений для мобильных платформ Android и iOS. дальше »