Comparador de codi (diff)
Compara dues versions de codi una al costat de l'altra o en línia, amb ressaltat de sintaxi, números de línia, opcions d'espais i un diff unificat per copiar.
Com comparar dos fragments de codi
- Enganxa la versió antiga a Codi original i la versió nova a Codi modificat.
- Tria el Llenguatge, o deixa Detecta automàticament: l’eina l’endevina a partir del codi i mostra el llenguatge detectat al costat de les estadístiques.
- Tria una Vista: Una al costat de l’altra o En línia (unificada).
- Defineix les opcions que necessitis: Ignora els espais en blanc i la sagnia, Ignora les majúscules i minúscules, Ressalta les paraules modificades i Mostra només els canvis (3 línies de context).
- Fes clic a Compara. Després de la primera comparació, el resultat segueix les teves edicions mentre escrius.
- Fes clic a Copia com a diff unificat o Baixa el .diff per reutilitzar el canvi com a pedaç.
Intercanvia els costats intercanvia les dues versions, cosa que converteix les addicions en supressions i viceversa.
Com es llegeix el diff
Les línies suprimides es tenyeixen de vermell i pertanyen a l’original; les línies afegides es tenyeixen de verd i pertanyen a la versió nova. Cada línia conserva el número de línia del seu propi fitxer, de manera que hi pots anar directament des del teu editor.
- Una al costat de l’altra posa els dos fitxers en dues columnes numerades. Una línia modificada queda al costat de la seva versió nova. Amb Ressalta les paraules modificades, es marquen les paraules que han canviat dins d’aquella línia; sense l’opció, les dues línies conserven tots els colors de la sintaxi.
- En línia (unificada) mostra una sola columna com en una revisió de codi: per a cada bloc modificat, primer van les línies suprimides (−) i després les afegides (+), amb els números de línia antic i nou.
- Mostra només els canvis (3 línies de context) plega els trams llargs sense canvis en un marcador «⋯ N línies sense canvis», cosa que fa molt més fàcil revisar fitxers grans.
La línia d’estadístiques compta les línies afegides, suprimides i sense canvis.
Ressaltat de sintaxi
El ressaltat es fa al teu navegador amb highlight.js. Només es carrega la gramàtica del llenguatge triat, la primera vegada que compares, de manera que la pàgina es manté lleugera. Els llenguatges admesos inclouen JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell i Markdown. La detecció automàtica fa servir pistes simples (paraules clau, claudàtors, anàlisi de JSON); si s’equivoca, tria tu mateix el llenguatge o escull Text sense format.
Espais en blanc, sagnia i fins de línia
Ignora els espais en blanc i la sagnia compara les línies després de retallar-ne els espais i d’ajuntar les seqüències d’espais i tabuladors, de manera que un fitxer tornat a sagnar de 2 a 4 espais, o de tabuladors a espais, no mostra cap diferència. Els fins de línia de Windows (CRLF) i d’Unix (LF) es normalitzen abans de comparar, així que un fitxer que només ha canviat els fins de línia s’informa com a idèntic. Tingues en compte que els espais en blanc poden ser significatius en Python, YAML i Makefiles: desactiva l’opció quan la sagnia importi.
El format de diff unificat
El pedaç exportat fa servir el format unificat estàndard que llegeixen git apply, patch i les eines de revisió de codi: una capçalera amb els noms dels dos fitxers, seguida de blocs que comencen amb @@ -a,b +c,d @@ i tres línies de context al voltant de cada canvi. Els fitxers es diuen original i changed, amb una extensió segons el llenguatge.
Preguntes freqüents
Es puja el meu codi a un servidor?
No. La comparació i el ressaltat s’executen localment al teu navegador; el codi no surt mai del teu dispositiu.
En què es diferencia del comparador de text?
Fa servir el mateix motor de comparació línia a línia, però hi afegeix ressaltat de sintaxi, una vista unificada, el plegat de context i un tractament dels espais en blanc pensat per al codi.
Per què es mostren com a modificades dues línies que semblen idèntiques?
Probablement difereixen en caràcters invisibles: espais finals, tabuladors en lloc d’espais o un espai dur. Marca Ignora els espais en blanc i la sagnia per confirmar-ho.
Puc aplicar amb Git el pedaç baixat?
Sí. Desa’l i executa patch original.js < changes.diff, o adapta els noms de fitxer de la capçalera i fes servir git apply.
Quina mida poden tenir els fragments?
Alguns milers de línies es comparen ràpidament. Si dos fitxers molt grans són completament diferents, l’eina s’atura al cap d’uns segons i et demana que comparis parts més petites.
Eines relacionades
- Comparador de textos Compara dos textos i mira les diferències una al costat de l'altra o en línia, per línies, paraules o caràcters. Comparador privat al navegador.
- Formatador i validador de JSON Formatador i validador de JSON gratuït que embelleix, minimitza i comprova JSON al navegador, amb els errors de sintaxi indicats per línia i columna.
- Provador d'expressions regulars Prova expressions regulars de JavaScript en directe amb coincidències ressaltades, grups de captura, substitució i una explicació clara de cada element.