GitHub анонсировал проект Atom, в рамках которого ведётся разработка новой среды редактирования кода. В настоящее время открыт код около 80 библиотек и пакетов, связанных с проектом. Об открытии ядра редактора пока ничего не сообщается. Проект пока находится на стадии начального тестирования, участие в котором может быть предоставлено после отправки заявки на сайте.
Редактор поддерживает режимы совместимости с Vim и Emacs, предоставляет средства для одновременной совместной работы с кодом, подсветку синтаксиса, поддерживает API для разработки расширений. Интерфейс может настраиваться через темы оформления, поддерживаются вкладки, закладки, умный контекстный поиск кода, схлопывание блоков кода, одновременное использование нескольких курсоров и областей выделения, наглядная пометка изменений, автодополнение и проверка кода для разных языков (Ruby, Python, SQL, PHP, Perl, Objective-C, C/C++, JavaScript, Java, Go и т.п.). Для формирования статей и документации может быть использована разметка Markdown.
Atom не является обычным web-приложением, а представляет собой обособленный редактор кода, построенный на кодовой базе бразуера Chromium, т.е. Atom является специализированным вариантом Chromium, нацеленным на работу в роли среды редактирования кода. При этом сама логика работы Atom базируется на web-технологиях и по сути каждая вкладка редактора является локально обработываемой web-страницей.
Помимо доступных для web-приложений возможностей, Atom предоставляет средства для навигации по локальной файловой системе (встроенный файловый менеджер) и гибкие средства поиска файлов, которые невозможно реализовать при использовании обычных web-приложений. В редакторе также напрямую используются некоторые внутренние подсистемы Chrome, такие как движок обработки регулярных выражений и нативные элементы формирования диалогов. Кроме того, так как компоненты Atom всегда выполняются локально, упрощается разработка дополнений, обращение к ресурсам и разграничение доступа.
Функциональность редактора формируется за счёт предоставления набора пакетов-дополнений, для установки которых предлагается встроенный пакетный менеджер "apm", похожий на "npm". Через дополнения реализованы все функции, выходящие за рамки базового редактирования кода, в том числе панели, подсветка синтаксиса, оформление интерфейса, формы работы с файлами и т.п. Кроме базовых дополнений предоставляется каталог сторонних пакетов.
Формат пакетов аналогичен npm и отличается предоставлением некоторых дополнительных блоков для определения меню, стилей, клавиатурных комбинаций, задания логики активации. Разработка дополнения мало чем отличается от создания приложения для Node.js. Для разработчиков дополнений доступны все модули Node.js, а также популярные JavaScript-библиотеки, такие как jQuery, Underscore и SpacePen. Кроме модулей Node.js предлагается API для формирования нативных диалогов, интеграции приложений, создания контекстных меню, манипуляции окнами, взаимодействия с подсистемами Chrome.