Utilia

Comparador de código

Compara dos versiones de código lado a lado o en línea, con resaltado de sintaxis, números de línea y un diff unificado para copiar o descargar.

Cómo comparar dos fragmentos de código

  1. Pega la versión antigua en Código original y la nueva en Código modificado.
  2. Elige el Lenguaje o deja Detectar automáticamente: la herramienta lo deduce a partir del código y muestra el lenguaje detectado junto a las estadísticas.
  3. Elige una Vista: Lado a lado o En línea (unificada).
  4. Ajusta las opciones que necesites: Ignorar espacios e indentación, Ignorar mayúsculas y minúsculas, Resaltar palabras modificadas y Mostrar solo los cambios (3 líneas de contexto).
  5. Haz clic en Comparar. Después de la primera comparación, el resultado sigue tus cambios a medida que escribes.
  6. Haz clic en Copiar como diff unificado o Descargar .diff para reutilizar el cambio como parche.

Intercambiar lados cambia de sitio las dos versiones, de modo que las líneas añadidas pasan a ser eliminadas y viceversa.

Cómo leer el diff

Las líneas eliminadas aparecen teñidas de rojo y pertenecen al original; las añadidas aparecen en verde y pertenecen a la versión nueva. Cada línea conserva su número de línea en su propio archivo, así que puedes ir directamente a ella en tu editor.

  • Lado a lado coloca los dos archivos en dos columnas numeradas. Una línea modificada queda junto a su nueva versión. Con Resaltar palabras modificadas, se marcan las palabras que cambiaron dentro de esa línea; sin esa opción, ambas líneas conservan todos sus colores de sintaxis.
  • En línea (unificada) muestra una sola columna, como en una revisión de código: en cada bloque modificado aparecen primero las líneas eliminadas (−) y después las añadidas (+), con los números de línea antiguos y nuevos.
  • Mostrar solo los cambios (3 líneas de contexto) pliega los tramos largos sin cambios en un marcador «⋯ N líneas sin cambios», lo que facilita mucho revisar archivos grandes.

La línea de estadísticas cuenta las líneas añadidas, eliminadas y sin cambios.

Resaltado de sintaxis

El resaltado se hace en tu navegador con highlight.js. Solo se carga la gramática del lenguaje elegido, en la primera comparación, para que la página siga siendo ligera. Los lenguajes admitidos son JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell y Markdown. La detección automática se basa en pistas sencillas (palabras clave, llaves, análisis JSON); si se equivoca, elige tú el lenguaje o selecciona Texto sin formato.

Espacios, indentación y saltos de línea

Ignorar espacios e indentación compara las líneas después de recortarlas y de reducir las secuencias de espacios y tabulaciones, así que un archivo reindentado de 2 a 4 espacios o de tabulaciones a espacios no muestra diferencias. Los saltos de línea de Windows (CRLF) y Unix (LF) se normalizan antes de comparar, de modo que un archivo que solo ha cambiado sus saltos de línea se considera idéntico. Ten en cuenta que los espacios pueden ser importantes en Python, YAML y los Makefile: desactiva la opción cuando la indentación tenga significado.

El formato diff unificado

El parche exportado usa el formato unificado estándar que leen git apply, patch y las herramientas de revisión de código: una cabecera con los dos nombres de archivo y luego bloques que empiezan por @@ -a,b +c,d @@ con tres líneas de contexto alrededor de cada cambio. Los archivos se llaman original y changed, con la extensión del lenguaje.

Preguntas frecuentes

¿Se sube mi código a un servidor?

No. La comparación y el resaltado se ejecutan localmente en tu navegador; el código nunca sale de tu dispositivo.

¿En qué se diferencia del comparador de textos?

Usa el mismo motor de comparación línea por línea, pero añade resaltado de sintaxis, una vista unificada, el plegado del contexto y un tratamiento de los espacios pensado para el código.

¿Por qué dos líneas aparecen como distintas si parecen iguales?

Probablemente se diferencian en caracteres invisibles: espacios al final, tabulaciones frente a espacios o un espacio de no separación. Marca Ignorar espacios e indentación para comprobarlo.

¿Puedo aplicar el parche descargado con Git?

Sí. Guárdalo y ejecuta patch original.js < changes.diff, o adapta los nombres de archivo de la cabecera y usa git apply.

¿Qué tamaño pueden tener los fragmentos?

Varios miles de líneas se comparan rápidamente. Si dos archivos muy grandes son completamente distintos, la herramienta se detiene al cabo de unos segundos y te pide que compares partes más pequeñas.