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_INTERVALdans__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 » :
|
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_ENCet mappé au codec Python le plus proche ; étendezENC_MAPdans__init__.pysi 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.