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

Google уточнила дату выпуска Android 8.0

Google внесли ясность насчет того, когда же ждать нового Android 8.0. На официальной странице для разработчиков появилась дополнительная информация насчет окончания программы Android O Developer Preview. дальше »

Google выпустила Android O Developer Preview 4

Google выпустил четвертую и последнюю предварительную версию Android O для устройств Nexus и Pixel. дальше »

В Android 7.1 появился режим обнаружения паники у пользователя

В новой версии Android нашли необычную функцию «Режим обнаружения паники», которая активируется, если владелец смартфона ведет себя странно. дальше »

Компания Sony открыла свои наработки в области нейронных сетей

Компания Sony представила проект NNabla (Neural Network Libraries), в рамках которого открыла наработки в области построения нейронных сетей для решения задач глубинного машинного обучения. дальше »

Windows 10 напоминает о проверке настроек конфиденциальности до обновления

Летом прошлого года Microsoft объявила, что бесплатно обновиться до Windows 10 можно будет только в течении ограниченного времени, а именно до 29 июля 2016 г. дальше »

Xiaomi Mi Max начал обновляться до Android 7.0 Nougat

Компания Xiaomi выпустила обновление прошивки для фаблета Xiaomi Mi Max с бета версией операционной системы Android 7.0 Nougat и последним обновлением безопасности от Google. дальше »

Выпущены Windows 10 Insider Preview Build 16215 для ПК и Build 15222 для смартфонов

Компания Microsoft выпустила новые сборки настольной и мобильной операционных систем для участников программы предварительного тестирования в рамках быстрого цикла. дальше »

WWDC: в iOS 11 предусмотрены виртуальная карта в Apple Pay и денежные переводы

5 июня в Сан Хосе прошла  конференция Всемирная конференция разработчиков Apple - (WWDC) для разработчиков  на платформах Apple. дальше »

Samsung анонсировал Tizen 4.0 и Tizen RT

Компания Samsung анонсировала на проходящей в Сан-Франциско конференции Tizen Developer Conference (TDC) 2017 следующую значительную ветку Tizen 4.0, которая будет поставляться на смартфонах Samsung Z4. дальше »

Microsoft переводит разработку Windows на Git

Компания Microsoft сообщила, что около 90% инженерных команд, занимающихся разработкой Windows, переведены на использование свободной системы управления исходными текстами Git, изначально развиваемой для сопровождения разработки ядра Linux. дальше »