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_INTERVALen__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áticaVerificar 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”:
|
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_ENCy se asigna al códec Python más cercano; extiendaENC_MAPen__init__.pysi 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.