Plugin CudaText : “Disk Wins” (Forcer le rechargement automatique en cas de changement externe)

CudaText n’a pas d’option intégrée qui recharge silencieusement un fichier au moment où il modifications sur le disque — chaque mode intégré « modifié sur le disque » en affiche toujours sorte d’invite (modale ou sans modal) avant de recharger (voir ui_notif_confirm dans default.json, valeurs 0-4, qui sont toutes demander). Ce plugin comble cette lacune : le disque gagne toujours, jamais d’invite.

Archivé ici afin que personne n’ait besoin de rediriger l’API du plugin CudaText pour cela encore. La source de vérité pour le plugin lui-même réside dans cuda_disk_wins/ dans ce dossier.

Ce que ça fait

  • Interroge chaque fichier ouvert et nommé une fois par seconde (configurable via TIMER_INTERVAL dans __init__.py).

  • Si l’heure mtime d’un fichier sur le disque change, le plugin le relit et appelle Editor.set_text_all() — ** écrasant toutes les modifications non enregistrées dans le onglet éditeur sans demander**.

  • Efface ensuite le flag “modifié” (PROP_MODIFIED = False), donc le L’onglet semble propre, comme si rien n’avait jamais divergé.

  • Au mieux, restaure la position du curseur et la ligne supérieure visible après recharger.

  • Ajoute deux commandes sous Plugins Disk Wins :

  • Activer/Désactiver le rechargement automatique

  • « Vérifier maintenant » (vérification manuelle ponctuelle)

Pourquoi un plugin au lieu d’un paramètre

Le propre observateur de fichiers de CudaText (ui_notif) ne propose que des comportements « demander » :

ui_notif_confirm

Comportement

0

invite sans modale, toujours

1

invite sans modale, si l’éditeur est modifié ou si Annuler n’est pas vide

2

invite sans modale, si l’éditeur est modifié

3

invite modale, toujours

4

invite modale, si l’éditeur est modifié

Il n’y a aucune valeur qui signifie “recharger automatiquement, pas d’invite, continuer”. D’où ce petit plugin, qui exécute sa propre boucle d’interrogation et recharge directement via l’API Python.

##Installation

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

Redémarrez CudaText.

Important : désactivez également la boîte de dialogue de notification de modification de CudaText afin ça ne se bat pas avec le plugin. Dans ~/.config/cudatext/settings/user.json :

{
    "ui_notif": false
}

(Équivalent à « Options → Paramètres – configuration utilisateur » dans l’interface utilisateur.) Redémarrer CudaText à nouveau après ce changement.

Mises en garde

  • Ceci est intentionnellement destructeur : les modifications non enregistrées de l’éditeur sont ignorées. silencieusement au moment où le fichier change en externe. C’est tout point du plugin — ne l’installez pas si vous souhaitez parfois conserver les modifications locales par rapport aux modifications externes.

  • Réagit uniquement aux changements dans le mtime du fichier ; taper dans l’éditeur lui-même ne déclenche pas de rechargement (pas de boucle de rétroaction).

  • Si le fichier est supprimé en externe, le plugin ne fait rien jusqu’à ce qu’il réapparaît (pas de crash, pas de tentatives de rechargement répétées).

  • L’encodage est lu via PROP_ENC et mappé au codec Python le plus proche ; étendez ENC_MAP dans __init__.py si vous n’utilisez pas déjà un encodage répertorié.

Origine

Conçu pour “préférer toujours les modifications du système de fichiers à l’éditeur non enregistré”. tampons, aucune confirmation” exigence discutée lors de la configuration de CudaText via yay -S cudatext-qt6-bin python sur Arch.