2011-06-02 26 views
5

Estoy usando google-diff-match-patch con mi aplicación Java para crear un diff. Utilizo el método diff_prettyHtml para generar el resultado HTML del diff.diff_match_patch: generación de vista uno al lado del otro

Sin embargo, me gustaría tener dos salidas diferentes, así que puedo ponerlas una al lado de la otra para que sea un poco más fácil para el usuario ver las diferencias. (Por ejemplo, como hace Eclipse.)

¿Hay algo en esa biblioteca que pueda usar para lograr esto? ¿Cómo sería usted hacer eso? (De ser posible, no usaría una biblioteca diferente)

Respuesta

1

Suponiendo que no está tratando de diferenciar HTML, en cuyo caso sugiero usar DaisyDiff, lo que probablemente quiera hacer con diff-match-patch es line differencing, which is described on a project wiki page. Básicamente se trata de generar una matriz de códigos hash, uno para cada línea de la izquierda y la derecha, y hacer un seguimiento de esos códigos hash relativos a las líneas en un mapa, y luego ejecutar esas matrices a través del algoritmo diferido. Luego usa la salida de diff junto con el mapa para rehidratar el resaltado izquierdo y derecho según corresponda.

+0

Por cierto, escribí una biblioteca contenedora para ayudar con el "trabajo de presentación" necesario para usar 'diff_match_patch': https://github.com/arnab/jQuery.PrettyTextDiff – arnab

Cuestiones relacionadas