GitHub представил (https://github.com/blog/2031-announcing-atom-1-0) первый стабильный релиз редактора кода Atom (http://atom.io/), который может использоваться как самодостаточное решение, так и вразработки Visual Studio Codeыступать в роли платформы для построения различных специализированных решений. В частности, на платформе Atom построены среда разработки Visual Studio Code (http://www.opennet.ru/opennews/art.shtml?num=42132) от компании Microsoft и Nuclide (http://www.opennet.ru/opennews/art.shtml?num=42486) от Facebook. Код проекта распространяется (https://github.com/atom/atom) под лицензией MIT.
<center><iframe width="640" height="360" src="https://www.youtube.com/embed/Y7aEiVwBAdk?rel=0" frameborder="0" allowfullscreen></iframe></center>
Редактор предоставляет средства кросс-платформенного редактирования кода, включает встроенный пакетный менеджер и интерфейс навигации по файловой системе, предоставляет средства для одновременной совместной работы с кодом, обладает интеллектуальной системой автодополнения ввода, предоставляет режимы совместимости с Vim и Emacs, поддерживает API (http://atom.io/docs/api/) для разработки расширений. Несколько файлов могут быть открыты в разных вкладках и одновременно отображены с использованием вертикального или горизонтального разбиения панелей. Интерфейс может настраиваться через темы оформления, поддерживаются вкладки, закладки, умный контекстный поиск кода, схлопывание блоков кода, одновременное использование нескольких курсоров и областей выделения, наглядная пометка изменений, автодополнение и проверка кода для разных языков (Ruby, Python, SQL, PHP, Perl, Objective-C, C/C++, JavaScript, Java, Go и т.п.). Для формирования статей и документации может быть использована разметка Markdown.
<center><a href="https://atom.io/assets/screenshot-main-363034b2e5a2bf94eb43d... src="http://www.opennet.ru/opennews/pics_base/0_1435254475.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
Функциональность редактора формируется за счёт предоставления набора пакетов-дополнений, для установки которых предлагается встроенный пакетный менеджер "apm (https://github.com/atom/apm)", похожий на "npm" от проекта Node.js. Формат пакетов аналогичен npm и отличается предоставлением некоторых дополнительных блоков для определения меню, стилей, клавиатурных комбинаций, задания логики активации. Разработка дополнения мало чем отличается от создания приложения для Node.js, в том числе доступны все модули Node.js, а также популярные JavaScript-библиотеки, такие как jQuery, Underscore и SpacePen. Через дополнения реализованы все функции, выходящие за рамки базового редактирования кода, в том числе панели, подсветка синтаксиса, оформление интерфейса, формы работы с файлами и т.п. Кроме базовых дополнений предоставляется каталог (http://atom.io/packages) сторонних пакетов, в котором уже присутствует более двух тысяч дополнений.
Основу Atom составляет компонент Electron (https://github.com/atom/electron) (ранее Atom Shell), представляющий собой основанное на Chromium и Node.js ядро, поверх которого реализован редактор. Electron поставляется в форме самодостаточного фреймворка, который можно использовать для создания произвольных пользовательских приложений, логика работы который определяется на JavaScript, HTML и CSS, а функциональность может быть расширена через систему дополнений. Разработчикам доступны модули Node.js, а также расширенный API для формирования нативных диалогов, интеграции приложений, создания контекстных меню, манипуляции окнами, взаимодействия с подсистемами Chrome.
Необходимость использования собственного браузерного ядра на основе Chromium, вместо оформления редактора в форме работающего в обычном браузере web-приложения, обусловлена необходимостью реализации дополнительных возможностей, недоступных через обычный Web API. Например, Atom предоставляет встроенный файловый менеджер и гибкие средства поиска файлов, которые невозможно реализовать при использовании обычных web-приложений. В редакторе также напрямую используются некоторые внутренние подсистемы Chromium, такие как движок обработки регулярных выражений и нативные элементы формирования диалогов. Кроме того, так как компоненты Atom всегда выполняются локально, упрощается разработка дополнений, обращение к ресурсам и разграничение доступа.
URL: https://github.com/blog/2031-announcing-atom-1-0
Новость: http://www.opennet.ru/opennews/art.shtml?num=42501