Utilia

Poređenje koda

Uporedi dvije verzije koda jedno pored drugog ili u nizu, s isticanjem sintakse, brojevima redova, opcijama za razmake i objedinjenim diffom za kopiranje.

Kako uporediti dva dijela koda

  1. Zalijepi staru verziju u Originalni kod, a novu u Izmijenjeni kod.
  2. Odaberi Jezik ili ostavi Prepoznaj automatski: alat pogađa na osnovu koda i prikazuje prepoznati jezik pored statistike.
  3. Odaberi Prikaz: Jedno pored drugog ili U nizu (objedinjeni).
  4. Podesi opcije koje ti trebaju: Zanemari razmake i uvlačenje, Zanemari velika i mala slova, Istakni izmijenjene riječi i Prikaži samo izmjene (3 reda konteksta).
  5. Klikni Uporedi. Nakon prvog poređenja rezultat prati tvoje izmjene dok tipkaš.
  6. Klikni Kopiraj kao objedinjeni diff ili Preuzmi .diff da izmjenu iskoristiš kao zakrpu (patch).

Zamijeni strane razmjenjuje dvije verzije, pa se dodavanja pretvaraju u brisanja i obrnuto.

Čitanje diffa

Uklonjeni redovi su obojeni crveno i pripadaju originalu; dodani redovi su obojeni zeleno i pripadaju novoj verziji. Svaki red zadržava svoj broj iz vlastite datoteke, pa možeš odmah skočiti na njega u svom uređivaču.

  • Jedno pored drugog postavlja dvije datoteke u dvije numerisane kolone. Izmijenjeni red stoji pored svoje nove verzije. Uz Istakni izmijenjene riječi označavaju se riječi koje su se promijenile unutar reda; bez toga oba reda zadržavaju pune boje sintakse.
  • U nizu (objedinjeni) prikazuje jednu kolonu poput pregleda koda: za svaki izmijenjeni blok prvo idu uklonjeni redovi (−), pa dodani (+), s starim i novim brojevima redova.
  • Prikaži samo izmjene (3 reda konteksta) savija duge neizmijenjene dijelove u oznaku „⋯ neizmijenjenih redova: N“, što velike datoteke čini znatno lakšim za pregled.

Red statistike broji dodane, uklonjene i neizmijenjene redove.

Isticanje sintakse

Isticanje se radi u tvom pregledniku pomoću biblioteke highlight.js. Gramatika odabranog jezika učitava se tek pri prvom poređenju, pa stranica ostaje lagana. Podržani jezici uključuju JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell i Markdown. Automatsko prepoznavanje koristi jednostavne tragove (ključne riječi, zagrade, parsiranje JSON-a); ako pogriješi, sam odaberi jezik ili izaberi Običan tekst.

Razmaci, uvlačenje i završeci redova

Zanemari razmake i uvlačenje poredi redove nakon skraćivanja i spajanja nizova razmaka i tabulatora, pa datoteka kojoj je uvlačenje promijenjeno s 2 na 4 razmaka ili s tabulatora na razmake ne pokazuje razliku. Windows (CRLF) i Unix (LF) završeci redova se normalizuju prije poređenja, pa se datoteka kojoj su se promijenili samo završeci redova prikazuje kao identična. Imaj na umu da razmaci mogu biti bitni u Pythonu, YAML-u i Makefileovima: isključi opciju kad je uvlačenje značajno.

Format objedinjenog diffa

Izvezena zakrpa koristi standardni objedinjeni format koji čitaju git apply, patch i alati za pregled koda: zaglavlje s nazivima dviju datoteka, pa blokovi koji počinju s @@ -a,b +c,d @@ i tri reda konteksta oko svake izmjene. Datoteke se zovu original i changed, s ekstenzijom za odabrani jezik.

Česta pitanja

Šalje li se moj kod na server?

Ne. I poređenje i isticanje izvršavaju se lokalno u tvom pregledniku; kod nikada ne napušta tvoj uređaj.

Po čemu se ovo razlikuje od alata za poređenje običnog teksta?

Koristi isti mehanizam poređenja red po red, ali dodaje isticanje sintakse, objedinjeni prikaz, savijanje konteksta i rukovanje razmacima prilagođeno kodu.

Zašto se dva reda prikazuju kao izmijenjena iako izgledaju identično?

Vjerovatno se razlikuju u nevidljivim znakovima: razmacima na kraju reda, tabulatorima umjesto razmaka ili nerazdvojivom razmaku. Označi Zanemari razmake i uvlačenje da to potvrdiš.

Mogu li preuzetu zakrpu primijeniti pomoću Gita?

Da. Sačuvaj je i pokreni patch original.js < changes.diff, ili prilagodi nazive datoteka u zaglavlju i koristi git apply.

Koliko veliki mogu biti isječci?

Nekoliko hiljada redova se poredi brzo. Ako su dvije vrlo velike datoteke potpuno različite, alat staje nakon nekoliko sekundi i traži da uporediš manje dijelove.