GitHub представил первый стабильный релиз редактора кода Atom, который может использоваться как самодостаточное решение, так и в роли технологического стека для построения различных специализированных решений. В частности, на платформе Atom построены среда разработки Visual Studio Code от компании Microsoft и Nuclide от Facebook. Код проекта распространяется под лицензией MIT.

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

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

Основу Atom составляет компонент Electron (ранее Atom Shell), представляющий собой основанное на Chromium и Node.js ядро, поверх которого реализован редактор. Electron поставляется в форме самодостаточного фреймворка, который можно использовать для создания произвольных пользовательских приложений, логика работы которого определяется на JavaScript, HTML и CSS, а функциональность может быть расширена через систему дополнений. Разработчикам доступны модули Node.js, а также расширенный API для формирования нативных диалогов, интеграции приложений, создания контекстных меню, манипуляции окнами, взаимодействия с подсистемами Chrome.

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

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