Como fazer dabbrev suportar CamelCase ou um melhor preenchimento automático em buffers java

Oct 14 2020

Eu uso dabbrev como minha função de autocompletar (e como a maior parte do que codifico é snake_case, funciona bem). No entanto, agora estou fazendo um projeto Java e tudo é CamelCase. Como faço para que dabbrev suporte CamelCase? Ou há uma função de preenchimento automático diferente que devo usar em buffers .java?

Em particular, se o texto que dabbrev está copiando está em alguma forma de CamelCase, por exemplo

GenericValue genericValue = new Ge...

e digito M- / onde o ... está, gostaria que expandisse o resto do texto em CamelCase sem tocar na caixa das letras digitadas atualmente e, portanto, com caixa baixa. assim, geM- / -> genericValue e GeM- / -> GenericValue.

Estou disposto a experimentar outra função para ver se funciona melhor. E, se eu tiver que hackear o dabbrev, também posso fazer isso.

Respostas

2 jue Oct 14 2020 at 03:56

Uma vez que você parece usar dabbrev sem companydefinir as 2 variáveis ​​a seguir, pode ajudar:

(setq dabbrev-case-fold-search nil
     dabbrev-case-replace nil)

Para ver a documentação e outras configurações possíveis, você pode usar:

M-x customize-group <RET> dabbrev <RET>

Uma alternativa ao dabbrev seria hippie-expand