Estou procurando um modo menor para manter os parágrafos preenchidos o tempo todo durante a digitação (semelhante ao que aggressive-indent-mode
ocorre no recuo). Ele também precisa ser inteligente o suficiente para preencher apenas comentários (e talvez seqüências de caracteres, dependendo do idioma).
Algumas coisas que eu tentei são:
auto-fill-mode
é preenchido automaticamente enquanto você digita novos parágrafos, mas não é preenchido novamente quando você edita parágrafos.refill-mode
constantemente preenche parágrafos, mas tenta agrupar o código em parágrafos e também em comentários.Tentei adicionar
fill-paragraph
aoafter-change-functions
gancho, mas ele estraga tudo e muitas outras coisas (provavelmente tudo isso pode ser corrigido, mas seria necessário algum esforço).
Alguma ideia melhor?
fonte
org-mode
, mas você pode tentar rebox2Respostas:
Eu vim com uma maneira mínima de implementar essa funcionalidade: basta ligar a barra de espaço para também chamar
(fill-paragraph)
!Há algumas ressalvas que eu encontrei até agora:
elisp-mode
(possivelmente outros) faz algum preenchimento de código sofisticado quando você ligafill-paragraph
, isso pode ou não ser o que você deseja. Provavelmente pode ser corrigido testando se point está em um comentário ou uma doutrina, mas não tenho certeza de como fazer isso.Às vezes, você não pode inserir facilmente vários espaços (porque
fill-paragraph
mata todos os espaços à direita). Como a barra de espaço agora age comojust-one-space
provavelmente não há problema em substituir essa ligação por(insert " ")
.Eu criei um modo menor contendo essa funcionalidade, que está disponível no github ou no pacote melpa
aggressive-fill-paragraph
.fonte
aggressive-fill-paragraph
é muito menos agressivo do querefill-mode
, o que é agressivo até ser bastante inútil (como você não pode nem citar alguém>
sem coisas de reorganização no modo de recarga: mesmo se você usar regexps para substituição) .Se você gosta de como o modo de recarga se comporta (não: p), mas não quando se comporta, deve ser relativamente fácil de corrigir, inibindo-o sempre que você não estiver nas condições certas
Por exemplo
Basicamente, ele remove a função que aciona a recarga
after-change-functions
e a substitui por uma que também verifica se estamos em um comentário antes de fazer exatamente a mesma coisa.fonte
refill-mode
:) O problema é querefill-mode
os usosfill-region
em vez defill-paragraph
, perdendo assim a capacidade de honrafill-paragraph-function
e fazer as coisas potencialmente confuso