GitHub открыл исходные тексты среды редактирования кода Atom
6 мая 2014 года
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.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.