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

Выпущена вторая бета–версия iOS 10 для iPhone и iPad

Компания Apple выпустила второе тестовое обновление новой мобильной платформы iOS, презентация которой состоялась в начале июня. дальше »

Android N присвоили официальное название Nougat

Компания Google официально дала названии своей новой мобильной операционной системе Android 7.0 (ныне известная как Android N), которую окрестили как «Nougat». дальше »

Microsoft продолжит развитие Windows 10 Mobile, сделав ставку на корпоративный рынок

Одной из загадок о платформе Microsoft в нынешнем году остается Windows 10 Mobile. дальше »

Apple представила новую операционную систему macOS Sierra с поддержкой Siri

13 июня в рамках своей презентации на конференции разработчиков WWDC, компания Apple, провела ребрендинг своей настольной операционной системы. Теперь вместо Mac OS X или OS X появится система macOS Sierra (по аналогии с другими — iOS, watchOS, tvOS). дальше »

На рынке мобильных приложений ожидается стремительный рост

Мобильные приложения приносят их разработчикам и компаниям, владеющим мобильными ОС, значительные доходы, которые растут из года в год. дальше »

Google признала проблему с утечкой памяти в Android

Программная платформа Google предоставляет память открытым приложениям, затем перераспределяя её в случае закрытия или продолжительного бездействия программы. В случае с Android 6.0 Marshmallow этого не происходит. дальше »

Сотрудничество Microsoft и Red Hat по развитию партнёрских возможностей продолжается

В апреле американская Linux-компания Red Hat провела свою Североамериканскую партнёрскую конференцию — Red Hat North America Partner Conference (NAPC), где сделала важное заявление: «Мы сильнее вместе с Microsoft»... дальше »

Проект CoreOS представил распределённую систему хранения Torus

Проект CoreOS, развивающий основанное на идеях контейнерной изоляции серверное окружение, анонсировал новое распределённое хранилище Torus. дальше »

Выявлены опасные уязвимости в библиотеке ImageMagick

Обнаружен ряд уязвимостей в библиотеке ImageMagick, используемой в ряде языков программирования и фреймворков, в том числе PHP, Ruby и Node.js, для работы с изображениями. дальше »

Выпущено приложение «Удалённый рабочий стол» для Windows 10

С помощью приложения «Удалённого рабочего стола» для Windows 10 можно подключаться к удаленным компьютерам и рабочим ресурсам практически отовсюду. Развитые средства взаимодействия RemoteFX в клиенте удаленного рабочего стола помогут выполнять любые задания, где бы вы не находились. дальше »