GitHub представил первую общедоступную версию специализированного редактора кода Atom и открыл под свободной лицензией MIT все связанные с проектом наработки. Базовая часть Atom основана на кодовой базе браузера Chromium, оптимизированной для выполнения задач среды редактирования кода. Логика работы редактора реализована с использованием web-технологий и компонуется в форме набора подключаемых дополнений.

Необходимость использования собственного браузерного ядра на основе Chromium, вместо оформления редактора в форме работающего в обычном браузере web-приложения, обусловлена необходимостью реализации дополнительных возможностей, недоступных через обычный Web API. Например, Atom предоставляет встроенный файловый менеджер и гибкие средства поиска файлов, которые невозможно реализовать при использовании обычных web-приложений. В редакторе также напрямую используются некоторые внутренние подсистемы Chromium, такие как движок обработки регулярных выражений и нативные элементы формирования диалогов. Кроме того, так как компоненты Atom всегда выполняются локально, упрощается разработка дополнений, обращение к ресурсам и разграничение доступа.

Редактор поддерживает режимы совместимости с Vim и Emacs, предоставляет средства для одновременной совместной работы с кодом, подсветку синтаксиса, поддерживает API для разработки расширений. Интерфейс может настраиваться через темы оформления, поддерживаются вкладки, закладки, умный контекстный поиск кода, схлопывание блоков кода, одновременное использование нескольких курсоров и областей выделения, наглядная пометка изменений, автодополнение и проверка кода для разных языков (Ruby, Python, SQL, PHP, Perl, Objective-C, C/C++, JavaScript, Java, Go и т.п.). Для формирования статей и документации может быть использована разметка Markdown. Несколько файлов могут быть открыты в разных вкладках и одновременно отображены с использованием вертикального или горизонтального разбиения панелей.

Функциональность редактора формируется за счёт предоставления набора пакетов-дополнений, для установки которых предлагается встроенный пакетный менеджер "apm", похожий на "npm" от проекта Node.js. Через дополнения реализованы все функции, выходящие за рамки базового редактирования кода, в том числе панели, подсветка синтаксиса, оформление интерфейса, формы работы с файлами и т.п. Кроме базовых дополнений предоставляется каталог сторонних пакетов, в котором уже присутствует около 800 дополнений.

Формат пакетов аналогичен npm и отличается предоставлением некоторых дополнительных блоков для определения меню, стилей, клавиатурных комбинаций, задания логики активации. Разработка дополнения мало чем отличается от создания приложения для Node.js. Для разработчиков дополнений доступны все модули Node.js, а также популярные JavaScript-библиотеки, такие как jQuery, Underscore и SpacePen. Кроме модулей Node.js предлагается API для формирования нативных диалогов, интеграции приложений, создания контекстных меню, манипуляции окнами, взаимодействия с подсистемами Chrome.

Atom Shell, основанное на Chromium и Node.js ядро, поверх которого реализован редактор, поставляется в форме самодостаточного фреймворка, который можно использовать для создания произвольных пользовательских приложений. Как и в Atom логика работы приложений определяется на JavaScript, HTML и CSS, а функциональность может быть расширена через систему дополнений. Для разработки доступен широкий спектр модулей для Node.js.

В настоящее время проект находится в стадии подготовки к релизу 1.0. Бинарные сборки пока доступны только для OS X, но до релиза разработчики обещают подготовить бинарные сборки для Linux и Windows. До релиза также будет проведена работа по оптимизации производительности и стабилизации API.

Источник: http://www.opennet.ru/opennews/art.shtml?num=39711