Come fare in modo che dabbrev supporti CamelCase o un migliore completamento automatico nei buffer java

Oct 14 2020

Uso dabbrev come funzione di completamento automatico (e poiché la maggior parte di ciò che codifico è snake_case funziona bene). Tuttavia, ora sto realizzando un progetto Java e tutto è CamelCase. Come posso fare in modo che dabbrev supporti CamelCase? O c'è una diversa funzione di completamento automatico che dovrei usare nei buffer .java?

In particolare, se il testo che dabbrev sta copiando è in qualche forma di CamelCase es

GenericValue genericValue = new Ge...

e digito M- / dove si trova ..., vorrei che espandesse il resto del testo in CamelCase senza toccare le maiuscole delle lettere attualmente digitate e quindi correttamente maiuscole. quindi geM- / -> genericValue e GeM- / -> GenericValue.

Sono disposto a provare un'altra funzione per vedere se funziona meglio. E, se devo hackerare dabbrev, posso farlo anche io.

Risposte

2 jue Oct 14 2020 at 03:56

Dal momento che sembri utilizzare dabbrev senza companyimpostare le seguenti 2 variabili, potrebbe essere d'aiuto:

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

Per vedere la documentazione e altre possibili impostazioni potresti usare:

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

Un'alternativa a dabbrev sarebbe hippie-expand