Ir al contenido

Vista de diferencias

ui.diff_view(diff) muestra un cambio: el nombre del archivo y luego las líneas que cambiaron (las añadidas en verde, las quitadas en rojo) con dos líneas de contexto alrededor de cada cambio; los cambios alejados se separan con ⋯. diff es un diccionario con path, old y new, los textos completos de antes y de después, y max_lines limita cuántas líneas se ven antes de … N líneas más. Es lo que muestra una Llamada a herramienta para los cambios que hizo.

ui.diff_view · Categoría: Agentes de IA · Referencia completa →

Vista de diferenciasVista de diferencias
  • Para mostrar lo que un agente o una herramienta cambió en un archivo.
  • Para revisar un cambio antes de guardarlo, junto a botones de Conservar y Rechazar.
  • Para las cifras solas (+12 −3), usa el Resumen de cambios.
import pyzed as pz
from pyzed import ui
old = "def save(path):\n data = load()\n write(path, data)\n return True\n"
new = "def save(path, data):\n write(path, data)\n log(path)\n return True\n"
pz.container(ui.diff_view({"path": "app/storage.py", "old": old, "new": new}), width=420)

Dos líneas de contexto rodean cada cambio; los cambios más alejados se separan con ⋯.

Vista de diferencias: Líneas cambiadasVista de diferencias: Líneas cambiadas
Líneas cambiadas
Código
pz.container(ui.diff_view({"path": "app.py", "old": "x = 1\ny = 2\n", "new": "x = 10\ny = 2\n"}),
width=300)
Vista de diferencias: Archivo nuevoVista de diferencias: Archivo nuevo
Archivo nuevo
Código
pz.container(ui.diff_view({"path": "main.py", "old": "", "new": "import pyzed as pz\n\npz.run(App)\n"}),
width=300)
Vista de diferencias: Líneas quitadasVista de diferencias: Líneas quitadas
Líneas quitadas
Código
pz.container(ui.diff_view({"path": "todo.txt", "old": "milk\neggs\nbread\n", "new": "milk\n"}),
width=300)
Vista de diferencias: Cambios separadosVista de diferencias: Cambios separados
Cambios separados
Código
old = "".join(f"line {i}\n" for i in range(1, 13))
new = old.replace("line 2\n", "line two\n").replace("line 11\n", "")
pz.container(ui.diff_view({"path": "notes.txt", "old": old, "new": new}), width=300)
Vista de diferencias: max_lines=4Vista de diferencias: max_lines=4
max_lines=4
Código
new = "".join(f"item {i}\n" for i in range(1, 11))
pz.container(ui.diff_view({"path": "list.txt", "old": "", "new": new}, max_lines=4), width=300)

Vista de diferencias no tiene eventos propios: muestra lo que le das. Como todo widget, también tiene los 18 eventos comunes (click, double_click, right_click, mouse_enter, drag, key_down, resize…), que se conectan con .on(...): mira Eventos y Eventos de cada componente.

diff_view(diff, *, theme=None, max_lines=120)

Un cambio tal como lo muestra Zed en un hilo: el nombre del archivo y las líneas cambiadas (en verde las añadidas, en rojo las quitadas) con unas pocas líneas alrededor.

Propiedad Por defecto Descripción
diff obligatorio Un dict con path, old y new (los textos antes y después).
theme None Tema.
max_lines 120 Líneas que se muestran antes de … N líneas más.

Referencia completa →