Lors de l'écriture de codes lisp, je suis parfois plongé dans une expression imbriquée et tout ce que je veux, c'est insérer toutes les parenthèses fermantes manquantes. Pour le moment, je ne fais que les insérer jusqu'à ce que j'obtienne un paren dépareillé, mais ce n'est pas très efficace.
Existe-t-il une commande pour insérer toutes les parenthèses manquantes?
Pour info, j'utilise des smartparens pour insérer automatiquement des parens correspondants. Pourtant, parfois j'ai juste besoin de faire ça.
development
rlazo
la source
la source
]
agi comme une paren super droite, fermant toutes les parens ouvertes, comme vous le demandez.Réponses:
Voici une fonction qui ferme toutes les parenthèses non fermées et autres paires correspondantes. Il repose sur l'analyse sexp d'Emacs. Il ne supporte que les paires d'un seul caractère, donc quelque chose comme
{-
sera fermé avec}
, non-}
. Pour Lisp, cela n'a pas d'importance.la source
([-!-foo]
, insérez-vous])
au point ou)
aprèsfoo]
?([-!-foo]
, je voudrais insérer)
aprèsfoo]
. Mais je peux me tromper bien sûr. Peut-être que @rlazo peut élaborer.J'ai découvert que si vous avez installé slime, il existe une commande pour ce faire, appelée
slime-close-all-parens-in-sexp
la source
Une façon très primitive (et presque certainement erronée) de le faire serait
Entre autres limitations, il suppose que toutes les parenthèses à insérer sont:
Je suppose que cela pourrait être juste assez pour être utile pour votre cas d'utilisation spécifique
la source