Sto scrivendo una funzione VimL che, in modalità di inserimento, permette una <BS>
attraverso la parte di una coppia (apertura [
, {
ecc) per eliminare la parte della coppia di chiusura se è il carattere successivo dopo il cursore (molto simile automatici coppie e vim-autoclose ). Questa funzione sarà diversa perché la parte di chiusura della coppia non verrà eliminata se ci sono coppie sbilanciate.
Esempi:
Il formato è <initial> => <result-after-backspace>
dove il mio cursore si trova davanti al |
.
((|) => (|)
((|)) => (|)
(|) => |
(defn => (defn
(|) |)
Come posso determinare se le coppie sono sbilanciate o meno prima di andare avanti ed eliminare la coppia di chiusura?
Ho testato sia auto-coppie che vim-autoclose . Con entrambi i plugin la parte di chiusura della coppia viene sempre eliminata.