Plugin CudaText: “Disk Wins” (Forçar recarga automática em alterações externas)¶
CudaText não tem nenhuma opção integrada que recarrega silenciosamente um arquivo no momento em que ele
alterações no disco - cada modo integrado “alterado no disco” ainda mostra algumas
tipo de prompt (modal ou sem modal) antes de recarregar
(veja ui_notif_confirm em default.json, valores 0-4, todos os quais
perguntar). Este plugin preenche essa lacuna: o disco sempre vence, sem prompt, nunca.
Arquivado aqui para que ninguém precise derivar novamente a API do plugin CudaText para isso
de novo. A fonte da verdade do próprio plugin reside em
cuda_disk_wins/ nesta pasta.
O que faz¶
Pesquisa todos os arquivos abertos e nomeados uma vez por segundo (configurável via
TIMER_INTERVALem__init__.py).Se o mtime de um arquivo no disco for alterado, o plugin o relê e chama
Editor.set_text_all()— substituindo quaisquer alterações não salvas no guia do editor sem perguntar.Apaga o flag “modificado” posteriormente (
PROP_MODIFIED = False), então o tab parece limpa, como se nada tivesse divergido.O melhor esforço restaura a posição do cursor e a linha visível superior após recarregar.
Adiciona dois comandos em
Plugins → Disk Wins:Ativar/desativar recarga automáticaVerificar agora(verificação manual única)
Por que um plugin em vez de uma configuração¶
O próprio observador de arquivos do CudaText (ui_notif) oferece apenas comportamentos de “pergunta”:
|
Comportamento |
|---|---|
0 |
prompt sem modal, sempre |
1 |
prompt sem modal, se o editor foi modificado ou Desfazer não está vazio |
2 |
prompt sem modal, se o editor for modificado |
3 |
prompt modal, sempre |
4 |
prompt modal, se o editor for modificado |
Não há valor que signifique “recarregar automaticamente, sem aviso, continue”. Daí este pequeno plugin, que executa seu próprio loop de pesquisa e recarrega diretamente por meio da API Python.
Instalação¶
mkdir -p ~/.config/cudatext/py
cp -r cuda_disk_wins ~/.config/cudatext/py/
Reinicie o CudaText.
Importante: desative também a caixa de diálogo de notificação de alterações do próprio CudaText para
não briga com o plugin. Em
~/.config/cudatext/settings/user.json:
{
"ui_notif": false
}
(Equivalente a Opções → Configurações – configuração do usuário na UI.) Reinicie
CudaText novamente após esta alteração.
Advertências¶
Isto é intencionalmente destrutivo: edições não salvas do editor são descartadas silenciosamente no momento em que o arquivo é alterado externamente. Isso é tudo ponto do plugin - não o instale se às vezes quiser manter edições locais sobre alterações externas.
Reage apenas a alterações no mtime do arquivo; digitando no próprio editor não aciona uma recarga (sem ciclo de feedback).
Se o arquivo for excluído externamente, o plugin não fará nada até reaparece (sem travamento, sem tentativas repetidas de recarga).
A codificação é lida via
PROP_ENCe mapeada para o codec Python mais próximo; estendaENC_MAPem__init__.pyse você ainda não usa uma codificação listado.
Origem¶
Construído para “sempre preferir alterações no sistema de arquivos ao editor não salvo
buffers, sem confirmação” requisito discutido ao configurar o CudaText
via yay -S cudatext-qt6-bin python no Arch.