Współdzielony edytor TypeScript
Piszcie wspólnie w TypeScript w czasie rzeczywistym, korzystając ze wspólnych kursorów, a także sprawdzajcie poprawność kodu lub formatujcie go dla wszystkich.
Instrukcja
Czym jest wspólna edycja kodu?
Wspólna edycja kodu pozwala kilku programistom pracować jednocześnie nad tym samym kodem, każdemu we własnej przeglądarce. Przydaje się podczas programowania w parach, rozmów rekrutacyjnych, nauczania i wspólnego debugowania fragmentu kodu — bez konfigurowania wspólnego środowiska IDE ani przesyłania sobie plików.
Aby kopie kodu u wszystkich były identyczne, zmiany są przesyłane jako niewielkie poprawki zamiast całych plików, a jeden serwer ustala kolejność ich zastosowania. Zmiany wprowadzone w tym samym momencie są wzajemnie dostosowywane, dzięki czemu żadna z nich nie zostaje utracona.
Opis narzędzia
To narzędzie to współdzielony edytor TypeScript z podświetlaniem składni. Otwórz go i wyślij link: wszyscy uczestnicy edytują ten sam kod w czasie rzeczywistym, widzą nawzajem swoje kursory i jednym kliknięciem mogą sprawdzić poprawność lub sformatować kod dla wszystkich.
Sprawdzanie poprawności składni odbywa się za pomocą parsera Babel i jego wtyczki TypeScript, dzięki czemu rozpoznawane są adnotacje typów, interfejsy, typy generyczne i wyliczenia. Formatowanie korzysta z parsera TypeScript w Prettier, a sformatowany kod zastępuje tylko zmienione wiersze, więc tekst wpisywany w tym czasie przez inne osoby pozostaje na swoim miejscu.
Funkcje
- Edycja w czasie rzeczywistym — zmiany wprowadzane przez wszystkich pojawiają się natychmiast i są łączone, gdy kilka osób pisze jednocześnie
- Kursory i zaznaczenia — zobacz, gdzie znajduje się każda osoba; jej kolor jest widoczny obok nazwy
- Sprawdź składnię — sprawdza składnię TypeScript i wyświetla pierwszy błąd wraz z numerem wiersza i kolumny
- Formatuj — formatuje kod za pomocą Prettier dla wszystkich uczestników pokoju
- Kopiuj i pobierz — zachowaj kopię kodu jako plik .ts
Jak to działa
Po otwarciu strony tworzony jest pokój na serwerze synchronizacji, a jego link pojawia się w pasku adresu. Każda osoba, która otworzy ten link, dołącza do tego samego pokoju i widzi ten sam dokument.
Każda zmiana jest wysyłana do serwera jako krótki opis tego, co się zmieniło — które znaki i w którym miejscu zostały wstawione lub usunięte — zamiast jako cały tekst. Serwer ustala kolejność zmian wprowadzonych przez wszystkich, umieszcza zmianę dokonaną na starszej wersji za zmianami, które nadeszły wcześniej, a następnie przekazuje wynik pozostałym uczestnikom. Wpisywany przez Ciebie tekst pojawia się od razu, a zmiany innych osób są z nim łączone, dzięki czemu niczyj tekst nie ginie, gdy dwie osoby edytują dokument w tym samym momencie.
Dokument jest przechowywany w pamięci serwera tylko wtedy, gdy pokój jest otwarty. Po ponownym wczytaniu strony wrócisz do pokoju z tekstem w takim stanie, w jakim był wcześniej; gdy wszyscy opuszczą pokój, pokój i jego tekst zostaną usunięte.
Ograniczenia
- W pokoju może przebywać maksymalnie 20 osób, a dokument może zawierać do 100 000 znaków.
- Po zamknięciu pokoju nic nie jest przechowywane. Pobierz tekst, zanim opuści go ostatnia osoba.
- Bardzo szybkie lub obszerne zmiany, takie jak wielokrotne wklejanie całego dokumentu jedna operacja po drugiej, są odrzucane, a tekst w pokoju zostaje ponownie wczytany w edytorze.
- Otwarcie linku do pokoju w innym edytorze współpracy (na przykład pokoju SQL w edytorze JavaScript) wyświetla komunikat „Nie znaleziono pokoju”: każdy pokój jest przypisany do jednego języka.
- Sprawdzanie poprawności obejmuje tylko składnię, a nie typy: kod, który nie skompilowałby się z powodu błędu typu, nadal przechodzi sprawdzanie. JSX (.tsx) nie jest obsługiwany.