sunglasses online meaning lentes diff

diff - online - ¿herramientas de diferenciación de sintaxis?



diff sunglasses (5)

Creo que Beyond Compare tiene lo que busca http://www.scootersoftware.com/index.php

¿Hay alguna herramienta diff (idealmente GUI) que tenga conocimiento de la sintaxis?

Como ejemplo del tipo de cosa que estoy buscando, encuentro que mi herramienta actual no alinea el código repetitivo:

Foo = { ''hello'': ''world'', | Foo = { ''hello'': ''world'', ''goodnight'': ''moon'' | ''goodnight'': ''moon'' } < < Bar = { ''picture'': 1000, < } | }

Me gustaría una herramienta que tratara de alinear las llaves de un lado con las llaves del otro.

Edición: Estoy buscando una herramienta que pueda detectar automáticamente esa condición y corregir su alineación.


La herramienta Pretty Diff reconoce la sintaxis automáticamente. El proceso que utiliza es minimizar el código para eliminar comentarios y luego embellecer el código para normalizar el formato y el espacio en blanco. Sin embargo, solo es compatible con algunos lenguajes web del lado del cliente. Esta herramienta funciona en el lado del cliente para que pueda probarla en su navegador y hay una página de muestra que contiene algunas demostraciones.


Me gusta DiffMerge de Source Gear.


No basado en GUI, sino completamente sintaxis: las herramientas Smart Differencer de mi compañía para muchos idiomas (incluyendo Java, C #, C ++, PHP, Python, JavaScript, HTML, XML, COBOL, ...)

Smart Differencer analiza el texto de origen como el compilador, por lo que entiende la sintaxis del lenguaje y estructura la forma en que lo hace el compilador. Compara estas estructuras (usando AST) para determinar la "distancia de edición mínima" en términos de acciones de edición (mover, copiar, eliminar, reemplazar, renombrar-identificador en bloque) en estas estructuras e informarlas.

En su ejemplo, sabría que el corchete a la derecha pertenece a foo, no a bar, y le diría que simplemente se eliminó toda la frase que involucra a bar.

El estilo de salida es diferente si desea enviar el resultado a otra herramienta, o más legible para los humanos si desea examinarlo directamente.


Beyond Compare le permitirá realinear las líneas que no coinciden. Generalmente tengo buena suerte con las líneas que coinciden adecuadamente.