Совместный редактор JavaScript
Пишите код на JavaScript вместе в режиме реального времени, видя курсоры друг друга, а также проверяйте и форматируйте код для всех участников.
Документация
Что такое совместное редактирование кода?
Совместное редактирование кода позволяет нескольким разработчикам одновременно работать над одним и тем же кодом, каждому — в своём браузере. Это удобно для парного программирования, собеседований, обучения и совместной отладки фрагмента кода — без настройки общей среды разработки или пересылки файлов.
Чтобы у всех была одинаковая копия, изменения передаются небольшими правками, а не целыми файлами, и один сервер определяет порядок их применения. Правки, внесённые одновременно, согласуются друг с другом, поэтому сохраняются обе.
Описание инструмента
Этот инструмент — общий редактор JavaScript с подсветкой синтаксиса. Откройте его и отправьте ссылку: все участники комнаты редактируют один и тот же код в реальном времени, видят курсоры друг друга и могут проверить или отформатировать код для всех одним щелчком.
Проверка выполняет анализ синтаксиса с помощью парсера Babel, в том числе для ES-модулей и JSX. Для форматирования используется Prettier. Отформатированный код заменяет только изменившиеся строки, поэтому текст, который другие участники вводят в это время, остаётся на месте.
Возможности
- Редактирование в реальном времени — изменения от всех участников появляются мгновенно и объединяются, даже если люди печатают одновременно
- Курсоры и выделения — видно, где находится каждый участник; его цвет указан рядом с именем
- Проверка — проверяет синтаксис JavaScript и показывает первую ошибку с указанием строки и столбца
- Форматирование — форматирует код с помощью Prettier для всех участников комнаты
- Копирование и скачивание — сохраните копию кода в виде файла .js
Как это работает
При открытии страницы на сервере синхронизации создаётся комната, а её ссылка помещается в адресную строку. Все, кто открывает эту ссылку, присоединяются к одной комнате и видят один и тот же документ.
Каждое изменение отправляется на сервер в виде краткого описания правки — какие символы и где были вставлены или удалены, — а не всего текста. Сервер выстраивает изменения от всех участников в едином порядке, перемещает правку, внесённую в более старую версию, за те изменения, которые были сделаны раньше, а затем передаёт результат всем остальным. Введённый вами текст отображается сразу, а изменения других участников объединяются с ним, поэтому ничьи правки не теряются, даже если два человека редактируют документ одновременно.
Документ хранится в памяти сервера только пока открыта комната. Если перезагрузить страницу, вы снова попадёте в комнату и увидите текст в том виде, в каком он был. Когда все участники покинут комнату, она и её текст будут удалены.
Ограничения
- В комнате может быть до 20 участников и до 100 000 символов.
- После закрытия комнаты данные не сохраняются. Скачайте текст, прежде чем последний участник покинет комнату.
- Очень быстрые или масштабные изменения, например многократная вставка всего документа подряд, отклоняются, после чего редактор перезагружает текст комнаты.
- Если открыть ссылку на комнату в другом совместном редакторе, например открыть комнату SQL в редакторе JavaScript, появится сообщение «Комната не найдена»: каждая комната предназначена для одного языка.
- Проверка анализирует только синтаксис. Код не запускается.