28.02.2024

Открыт редактор Zed, поддерживающий совместное написание кода

Объявлено об открытии исходных текстов многопользовательского редактора кода Zed, развиваемого под руководством Натана Собо (Nathan Sobo), автора проекта Atom (основа VS Code) при участии команды бывших разработчиков редактора Atom, платформы Electron и библиотеки для разбора синтаксиса Tree-sitter. Исходные тексты серверной части, обеспечивающей координацию многопользовательского редактирования, открыты под лицензией AGPLv3, а самого редактора — под лицензией GPLv3. Для формирования интерфейса пользователя задействована собственная библиотека GPUI, открытая под лицензией Apache 2.0. Код проекта развивается на языке Rust. Из платформ пока поддерживается только macOS (в разработке поддержка Linux, Windows и Web).

Редактор Zed примечателен ориентацией на организацию совместной разработки в режиме реального времени и достижение максимальной отточенности, производительности и отзывчивости интерфейса, в котором по задумке создателей проекта все действия при редактировании должны выполняться мгновенно, а задачи кодирования решаться наиболее эффективным способом. В Zed предпринята попытка совместить в одном продукте легковесный редактор и функциональность современных интегрированных сред разработки. При разработке Zed учтён опыт создания Atom и предпринята попытка воплотить некоторые новые идеи о том, как должен выглядеть идеальный редактор для программиста.

Высокая производительность Zed достигается благодаря активному использованию многопоточности с задейстованием всех доступных ядер CPU, а также выполнению растеризации окон на стороне GPU. В итоге удалось добиться очень высокой скорости реакции на нажатие клавиш с отображением результата уже в следующем цикле обновления экрана. В проведённых тестах время реакции на нажатие клавиши в Zed оценивается в 58 мс, для сравнения в Sublime Text 4 этот показатель равен 75 мс, в CLion — 83 мс, а в VS Code — 97 мс. Время запуска Zed оценено в 338 мс, Sublime Text 4 — 381 мс, VS Code — 1444 мс, CLion — 3001 мс. Потребление памяти Zed составило 257 МБ, Sublime Text 4 — 219 МБ, VS Code — 556 МБ, CLion — 1536 МБ.

Среди возможностей Zed:

  • Учёт полного синтаксического дерева различных языков программирования для корректной подсветки синтаксиса, автоформатирования, структурного выделения и контекстного поиска;
  • Поддержка обращения к серверам LSP (Language Server Protocol) для автодополнения, навигации по коду, диагностики ошибок и рефакторинга.
  • Возможность подключения и изменения тем оформления. Наличие светлых и тёмных тем.
  • Использование по умолчанию клавиатурных комбинаций VS Code. Опциональный режим совместимости с клавиатурными комбинациями и командами Vim.
  • Поддержка интеграции с GitHub Copilot для помощи в написании и рефакторинге кода.
  • Интегрированный эмулятор терминала.
  • Совместная навигация по коду и редактирование кода одновременно несколькими разработчиками в одном общем рабочем пространстве.
  • Средства для совместного обсуждения и планирования работ в команде. Поддержка ведения задач, создания заметок и отслеживания проектов, текстовый и голосовой чат.
  • Возможность подключения к работе над проектом с любого компьютера, без привязки к данным на локальной системе. Работа с внешними проектами осуществляется по аналогии с работой с кодом, размещённым на локальном компьютере.

Для финансирования работы команды разработчиков Zed в режиме полного рабочего дня проект намерен в дальнейшем использовать бизнес-модель, основанную на предоставлении дополнительных платных сервисов. Первым из таких сервисов станет «Zed Channels» с реализацией виртуального офиса для организации работы команд разработчиков в больших проектах, позволяющего скооперироваться вместе нескольким разработчикам, взаимодействовать с другими участниками и совместно писать код. На базе Zed Channels запущена инициатива Fireside Hacks, в рамках которой любой желающий может в режиме реального времени наблюдать за разработкой самого Zen. В будущем также планируется предоставить сервиса с собственным интеллектуальным помощником в стиле GitHub Copilot и, возможно, реализовать платные специализированные дополнения, учитывающие специфику разработки коммерческих продуктов и использования на предприятиях.

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