Complemento CudaText: “Disk Wins” (Forzar recarga automática en cambios externos)

CudaText no tiene una opción incorporada que recargue silenciosamente un archivo en el momento en que cambios en el disco: cada modo integrado “cambiado en el disco” todavía muestra algunos tipo de mensaje (modal o sin modal) antes de recargar (ver ui_notif_confirm en default.json, valores 0-4, todos los cuales preguntar). Este complemento cierra esa brecha: el disco siempre gana, sin aviso, nunca.

Archivado aquí para que nadie tenga que volver a derivar la API del complemento CudaText para esto de nuevo. La fuente de la verdad para el complemento en sí se encuentra en cuda_disk_wins/ en esta carpeta.

Qué hace

  • Sondea cada archivo abierto con nombre una vez por segundo (configurable a través de TIMER_INTERVAL en __init__.py).

  • Si el tiempo mtime de un archivo en el disco cambió, el complemento lo vuelve a leer y llama Editor.set_text_all()sobrescribiendo cualquier cambio no guardado en el pestaña del editor sin preguntar.

  • Borra el indicador “modificado” después (PROP_MODIFIED = False), por lo que el La pestaña se ve limpia, como si nada se hubiera desviado.

  • Best-effort restaura la posición del cursor y la línea superior visible después recargar.

  • Agrega dos comandos en Complementos Disk Wins:

  • Activar/desactivar la recarga automática

  • Verificar ahora (verificación manual de una sola vez)

¿Por qué un complemento en lugar de una configuración?

El propio observador de archivos de CudaText (ui_notif) solo ofrece comportamientos de “preguntar”:

ui_notif_confirm

Comportamiento

0

aviso sin modal, siempre

1

mensaje sin modal, si el editor se modificó o Deshacer no vaciar

2

mensaje sin modal, si se modifica el editor

3

aviso modal, siempre

4

mensaje modal, si se modificó el editor

No hay ningún valor que signifique “recargar automáticamente, sin aviso, continuar”. De ahí este pequeño complemento, que ejecuta su propio ciclo de sondeo y recarga directamente a través de la API de Python.

Instalación

mkdir -p ~/.config/cudatext/py
cp -r cuda_disk_wins ~/.config/cudatext/py/

Reinicie CudaText.

Importante: también deshabilite el cuadro de diálogo de notificación de cambios propio de CudaText para que no pelea con el complemento. En ~/.config/cudatext/settings/user.json:

{
    "ui_notif": false
}

(Equivalente a Opciones Configuración configuración de usuario en la interfaz de usuario). Reiniciar CudaText nuevamente después de este cambio.

Advertencias

  • Esto es intencionalmente destructivo: las ediciones del editor no guardadas se descartan silenciosamente en el momento en que el archivo cambia externamente. eso es todo punto del complemento: no lo instale si a veces desea conservar ediciones locales sobre cambios externos.

  • Sólo reacciona a cambios en el tiempo m del archivo; escribiendo en el propio editor no activa una recarga (sin bucle de retroalimentación).

  • Si el archivo se elimina externamente, el complemento no hace nada hasta que reaparece (sin fallas, sin intentos repetidos de recarga).

  • La codificación se lee mediante PROP_ENC y se asigna al códec Python más cercano; extienda ENC_MAP en __init__.py si aún no usa una codificación listado.

Origen

Creado para “preferir siempre los cambios en el sistema de archivos en lugar del editor no guardado” buffers, sin requisito de confirmación” discutido al configurar CudaText a través de yay -S cudatext-qt6-bin python en Arch.