Confronto codice (diff)
Confronta due versioni di codice affiancate o in linea, con evidenziazione della sintassi, numeri di riga, opzioni sugli spazi e un diff unificato da copiare.
Come confrontare due frammenti di codice
- Incolla la vecchia versione in Codice originale e quella nuova in Codice modificato.
- Scegli il Linguaggio, oppure lascia Rileva automaticamente: lo strumento lo deduce dal codice e mostra il linguaggio rilevato accanto alle statistiche.
- Scegli una Vista: Affiancata oppure In linea (unificata).
- Imposta le opzioni che ti servono: Ignora spazi e indentazione, Ignora maiuscole e minuscole, Evidenzia le parole modificate e Mostra solo le modifiche (3 righe di contesto).
- Clicca su Confronta. Dopo il primo confronto, il risultato segue le tue modifiche mentre scrivi.
- Clicca su Copia come diff unificato o Scarica .diff per riutilizzare la modifica come patch.
Inverti i lati scambia le due versioni, trasformando le aggiunte in eliminazioni e viceversa.
Come leggere il diff
Le righe rimosse sono colorate di rosso e appartengono all’originale; le righe aggiunte sono colorate di verde e appartengono alla nuova versione. Ogni riga conserva il numero di riga del proprio file, così puoi raggiungerla subito nel tuo editor.
- Affiancata mette i due file in due colonne numerate. Una riga modificata sta accanto alla sua nuova versione. Con Evidenzia le parole modificate vengono marcate le parole cambiate all’interno di quella riga; senza, entrambe le righe mantengono tutti i colori della sintassi.
- In linea (unificata) mostra una sola colonna, come in una code review: per ogni blocco modificato vengono prima le righe rimosse (−), poi quelle aggiunte (+), con i numeri di riga sia vecchi sia nuovi.
- Mostra solo le modifiche (3 righe di contesto) ripiega i lunghi tratti invariati in un segnaposto “⋯ N righe invariate”, il che rende molto più facile la revisione dei file grandi.
La riga delle statistiche conta le righe aggiunte, rimosse e invariate.
Evidenziazione della sintassi
L’evidenziazione avviene nel tuo browser con highlight.js. Viene caricata solo la grammatica del linguaggio scelto, al primo confronto, così la pagina resta leggera. I linguaggi supportati includono JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell e Markdown. Il rilevamento automatico usa indizi semplici (parole chiave, parentesi, parsing JSON); se sbaglia, scegli tu il linguaggio oppure seleziona Testo semplice.
Spazi, indentazione e fine riga
Ignora spazi e indentazione confronta le righe dopo averle ripulite dagli spazi iniziali e finali e dopo aver ridotto le sequenze di spazi e tabulazioni, quindi un file reindentato da 2 a 4 spazi o da tabulazioni a spazi non mostra differenze. I fine riga Windows (CRLF) e Unix (LF) vengono normalizzati prima del confronto, quindi un file che ha cambiato solo i fine riga risulta identico. Tieni presente che gli spazi possono contare in Python, YAML e nei Makefile: disattiva l’opzione quando l’indentazione è significativa.
Il formato diff unificato
La patch esportata usa il formato unificato standard letto da git apply, patch e dagli strumenti di code review: un’intestazione con i due nomi di file, poi blocchi (hunk) che iniziano con @@ -a,b +c,d @@ e tre righe di contesto attorno a ogni modifica. I file si chiamano original e changed, con l’estensione del linguaggio.
Domande frequenti
Il mio codice viene caricato su un server?
No. Il confronto e l’evidenziazione avvengono entrambi in locale nel tuo browser; il codice non lascia mai il tuo dispositivo.
In cosa è diverso dal confronto di testi?
Usa lo stesso motore di confronto riga per riga, ma aggiunge l’evidenziazione della sintassi, una vista unificata, il ripiegamento del contesto e una gestione degli spazi pensata per il codice.
Perché due righe risultano diverse anche se sembrano identiche?
Probabilmente differiscono per caratteri invisibili: spazi finali, tabulazioni al posto di spazi o uno spazio unificatore. Spunta Ignora spazi e indentazione per averne conferma.
Posso applicare la patch scaricata con Git?
Sì. Salvala ed esegui patch original.js < changes.diff, oppure adatta i nomi dei file nell’intestazione e usa git apply.
Quanto possono essere grandi i frammenti?
Diverse migliaia di righe si confrontano rapidamente. Se due file molto grandi sono completamente diversi, lo strumento si ferma dopo qualche secondo e ti chiede di confrontare parti più piccole.
Strumenti correlati
- Confronto testi (diff) Confronta due testi online e trova le differenze per righe, parole o caratteri, in vista affiancata o in linea, con esportazione in formato .diff.
- Formattatore e validatore JSON Formattatore e validatore JSON gratuito che formatta, minifica e controlla il JSON nel browser, con gli errori di sintassi indicati per riga e colonna.
- Tester di regex Testa le espressioni regolari JavaScript in tempo reale con corrispondenze evidenziate, gruppi di cattura, sostituzione e spiegazione di ogni token.