Al escribir códigos lisp, a veces estoy profundamente en una expresión anidada y todo lo que quiero es insertar todos los paréntesis de cierre que faltan. En este momento solo los estoy insertando hasta que obtengo un par no coincidente, pero no es muy eficiente.
¿Hay algún comando para insertar todos los paréntesis faltantes?
FYI, estoy usando smartparens para insertar automáticamente parens coincidentes. Aún así, a veces solo necesito hacer esto.
development
rlazo
fuente
fuente
]
actuaba como un padre súper correcto, cerrando todos los padres abiertos, según lo solicite.Respuestas:
Aquí hay una función que cierra todos los paréntesis no cerrados y otros pares coincidentes. Se basa en el análisis sexp de Emacs. Solo admite pares coincidentes de un solo carácter, por lo
{-
que se cerrará algo así}
, no-}
. Para Lisp, eso no importa.fuente
([-!-foo]
, ¿inserta])
en el punto o)
despuésfoo]
?([-!-foo]
, lo insertaría)
despuésfoo]
. Pero podría estar equivocado, por supuesto. Quizás @rlazo pueda dar más detalles.Descubrí que si tienes slime instalado, hay un comando para hacer esto, llamado
slime-close-all-parens-in-sexp
fuente
Una forma muy primitiva (y casi ciertamente incorrecta) de hacerlo sería
Entre otras limitaciones, se supone que todos los paréntesis que deben insertarse son:
Supongo que podría ser suficiente para ser útil para su caso de uso específico
fuente