Съвместен редактор на код
Редактор на код в реално време за съвместна работа. Споделете връзка на стая и работете върху код заедно със синтактично маркиране и живо показване на курсора.
Прочети ме
Какво е редактиране в реално време със сътрудничество?
Редактирането в реално време със сътрудничество позволява на няколко човека да работят на един и същ документ едновременно, като промените на всеки човек са незабавно видими за всички останали. Ранните системи използваха Operational Transformation (OT) — техника, която преподрежда конфликтни редакции в движение — но OT изисква централен сървър, който да арбитрира всяка промяна. Съвременни системи като Yjs използват Conflict-free Replicated Data Types (CRDTs): математическа рамка, където всеки две реплики могат да бъдат слети в произволен ред и винаги се събират към един и същ резултат, без да се нуждаят от централна власт, която да реши кой "печели".
CRDTs правят редактирането офлайн естествено: потребителите могат да продължат да редактират дори когато са отключени, а техните промени се сливат чисто, когато се преподключат. Ето защо редакторите за редактиране в реално време със сътрудничество, построени на CRDTs, се чувстват мигновени — редакциите се прилагат локално първо и се синхронизират с равноправни партньори впоследствие, вместо да се чака пътуване в кръг до сървър, преди да се появят на екрана.
Описание на инструмента
Редакторът за сътрудничество код е редактор за код в реално време с множество играчи, захранван от Yjs и CodeMirror 6. Споделете URL адреса на стаята със своите екипни членове и всеки в стаята редактира един и същ документ заедно, като курсорът и селекцията на всеки човек се показват в етикет с индикатор.
Редакторът поддържа маркиране на синтаксиса за десетки програмни езици, избираеми чрез падащо меню на споделен език — промяната на езика в един браузър го актуализира за всеки в стаята незабавно. Файловете могат да бъдат заредени от вашия локален диск с бутона Отворен файл и изтеглени обратно с Запазване на файл.
Функции
- Курсори на живо с множество потребители: Курсорът и селекцията на всеки сътрудник се показват с цветен код, етикет с име; множество курсори на една и съща позиция се свиват в един индикатор "N потребители", за да се намали визуалният шум.
- Споделен избор на език: Активният програмен език се запазва в стаята, така че всички участници винаги виждат един и същ синтаксис маркиране, а късните присъединяващи се незабавно получават правилното състояние.
- Отворете и запазете файлове локално: Заредете всеки изходен файл от диск директно в споделения редактор или изтеглете текущия документ като файл с правилното разширение.
Как работи
Когато се присъедините към стаята, редакторът създава Yjs документ със споделен Y.Text възел, представляващ съдържанието на файла. Всеки натиск на клавиш се кодира като компактна двоична актуализация на Yjs, сериализира се в Base64 и се излъчва през WebSocket стаята. Всички свързани равноправни партньори прилагат актуализацията към своята собствена реплика; поради гаранцията на CRDT, всички реплики се събират към един и същ текст, независимо от реда, в който пристигат актуализациите.
Позициите на курсора и селекцията се споделят чрез лек слой Awareness, който маршрутизира данни за позиция през една и съща WebSocket стаята. Пълното състояние на документа се амортизира и записва в постоянно хранилище на стаята всяка секунда, така че потребителите, които се присъединят след като сесията е стартирала, получават текущия документ незабавно.
Обяснени опции
- Падащо меню на езика — Избира езика за маркиране на синтаксиса на редактора. Изборът се излъчва на всички членове на стаята, така че всеки вижда последователно маркиране. Падащото меню е деактивирано, докато не се свържете със стаята.
- Отворен файл — Отваря локален избор на файл и зарежда текстовото съдържание на избрания файл в споделения Yjs документ, замествайки текущото съдържание за всеки в стаята.
- Запазване на файл — Изтегля текущото съдържание на редактора като файл. Разширението на файла се избира автоматично въз основа на избрания език.
- Тема — Редакторът следва вашето системно предпочитание за тъмно/светло (съхранено в
localStorage). Превключете вашата ОС или браузърна тема, за да превключите между темите на редактора в стил VS Code тъмно и светло.
Ограничения
- Активна WebSocket връзка към релейния сървър е необходима за синхронизиране; ако връзката се прекъсне, редакциите, направени офлайн, ще се синхронизират автоматично при преподключване.
- Няма постоянна история на версиите — след като сесията завърши и стаята се затвори, документът е изчезнал, освен ако не сте го запазили локално с бутона Запазване на файл.
- Двоичните файлове (изображения, компилирани двоични файлове и т.н.) не могат да бъдат заредени; редакторът работи само с обикновени текстови изходни файлове.
- Този инструмент е в бета; стабилността на стаята и максималният брой едновременни потребители могат да бъдат ограничени.
Съвети
- Споделете пълния URL адрес на стаята от адресната лента на вашия браузър, за да поканите сътрудници — ID на стаята е кодиран в URL адреса.
- Запазете локално копие с Запазване на файл в края на сесията; данните на стаята не са гарантирани да се запазят неопределено време.
- Ако етикетът на курсора на сътрудник покрива важен код, етикетът автоматично се превръща наляво, когато е близо до дясния край на редактора.