Koostöö koodiredaktor
Reaalajas koostöö koodiredaktor. Jagage ruumi link ja kirjutage koodi koos süntaksi esiletõstmise ja otseülekande kursorinäitamisega.
Loe mind
Mis on reaalajas koostöös redigeerimine?
Reaalajas koostöös redigeerimine võimaldab mitmel inimesel samaaegselt sama dokumendiga töötada, kusjuures iga inimese muudatused on kohe nähtavad kõigile teistele. Varasemad süsteemid kasutasid Operational Transformation (OT) — tehnikat, mis järjestab konflikteerivaid muudatusi lennult — kuid OT nõuab keskset serverit, et otsustada iga muudatuse üle. Kaasaegsed süsteemid nagu Yjs kasutavad Conflict-free Replicated Data Types (CRDT): matemaatilist raamistikku, kus mis tahes kahte koopiat saab ühendada mis tahes järjekorras ja need koonduvad alati samale tulemusele, ilma et oleks vaja keskset autoriteeti, kes otsustaks, kes "võidab".
CRDT-d teevad võrguühenduseta redigeerimise loomulikuks: kasutajad saavad redigeerida ka siis, kui ühendus on katkenud, ja nende muudatused ühenduvad puhtalt, kui nad taas ühenduse saavad. Seetõttu tunduvad reaalajas koostöös redaktorid, mis on ehitatud CRDT-dele, kohesed — muudatused rakendatakse kõigepealt kohalikult ja sünkroositakse seejärel kaaslastega, selle asemel et oodata serveriga ümardusreisi enne, kui need ekraanil ilmuvad.
Tööriista kirjeldus
Collaborative Code Editor on reaalajas mitmekasujaline koodiredaktor, mida juhib Yjs ja CodeMirror 6. Jagage ruumi URL-i oma meeskonnaliikmetega ja kõik ruumis olevad inimesed redigeerivad sama dokumenti koos, kusjuures iga inimese kursor ja valik on näidatud märgistatud indikaatoris.
Redaktor toetab süntaksi esiletõstmist kümnete programmeerimiskeelte jaoks, mida saab valida jagatud keele ripploendi kaudu — keele muutmine ühes brauseris värskendab seda kõigile ruumis olevate inimeste jaoks koheselt. Faile saab laadida kohalikust kettast nupu Open File abil ja alla laadida nupu Save File abil.
Funktsioonid
- Reaalajas mitmekasujalised kursorid: Iga koostöötaja kursor ja valik on näidatud värvikoodiga, nimega märgistusega; mitmed kursorid samal positsioonil kokku kukkuvad üheks "N kasutajat" indikaatoriks, et vähendada visuaalset müra.
- Jagatud keele valik: Aktiivne programmeerimiskeel on ruumis säilitatud, nii et kõik osalejad näevad alati sama süntaksi esiletõstmist ja hilisemad liitujad saavad kohe õige oleku.
- Failide avamine ja salvestamine kohalikult: Laadige mis tahes lähtekood kettalt otse jagatud redaktorisse või laadige praegune dokument alla õige laiendiga failina.
Kuidas see toimib
Kui liitute ruumiga, loob redaktor Yjs dokumendi jagatud Y.Text sõlmega, mis esindab faili sisu. Iga klahvivajutus kodeeritakse kompaktse binaarses Yjs uuendusena, serialiseeritakse Base64-ks ja levitakse WebSocket ruumi kaudu. Kõik ühendatud kaaslased rakendavad uuenduse oma koopiale; CRDT garantii tõttu koonduvad kõik koopiad samale tekstile, olenemata sellest, millises järjekorras uuendused saabuvad.
Kursori ja valiku positsioonid jagatakse kerge Awareness kihi kaudu, mis marsruudib positsioonandmeid sama WebSocket ruumi kaudu. Täielik dokumendi olek on summutatud ja kirjutatud püsivasse ruumi salvestusse iga sekundi järel, nii et kasutajad, kes liituvad pärast seansi algust, saavad praeguse dokumendi kohe.
Valikud selgitatud
- Keele ripploend — Valib redaktori süntaksi esiletõstmise keele. Valik levitakse kõigile ruumi liikmetele, nii et kõik näevad järjepidevat esiletõstmist. Ripploend on keelatud, kuni te pole ruumiga ühendatud.
- Open File — Avab kohaliku failivalija ja laadib valitud faili tekstisisu jagatud Yjs dokumenti, asendades praeguse sisu kõigile ruumi inimestele.
- Save File — Laadib praeguse redaktori sisu alla failina. Faili laiend valitakse automaatselt valitud keele alusel.
- Teema — Redaktor järgib teie süsteemi tumeda/heleda eelistust (salvestatud
localStorage-sse). Lülitage oma operatsioonisüsteemi või brauseri teemat, et lülituda VS Code stiilis tumeda ja heleda redaktori teemade vahel.
Piirangud
- Sünkroonimiseks on vaja aktiivset WebSocket ühendust releeserveriga; kui ühendus katkestatakse, sünkroositakse võrguühenduseta tehtud muudatused automaatselt uuesti ühenduse loomisel.
- Püsivat versiooniajalugu pole — kui seanss lõpeb ja ruum suletakse, on dokument kadunud, kui te ei salvestanud seda kohalikult nupu Save File abil.
- Binaarfaile (pilte, kompileeritud binaare jne) ei saa laadida; redaktor töötab ainult lihtteksti lähtekoodifailidega.
- See tööriist on beeta-versioon; ruumi stabiilsus ja maksimaalne samaaegne kasutajate arv võib olla piiratud.
Näpunäited
- Jagage täielikku ruumi URL-i oma brauseri aadressiriba kaudu, et kutsuda koostöötajaid — ruumi ID on kodeeritud URL-is.
- Salvestage kohalik koopia nupu Save File abil seansi lõpus; ruumi andmete püsimist ei ole garanteeritud lõputult.
- Kui koostöötaja kursori märgistus katab olulist koodi, liigub märgistus automaatselt vasakule, kui see on redaktori parema serva lähedal.