Existe-t-il une commande pour ranger les parenthèses de fin?

8

Lors de l'édition de code lisp, je me retrouve souvent avec des parenthèses de fin dispersées autour (en supposant que |c'est le point):

(defun example-function ()
  (let ((x (+ 1 1)))
    (when x
      (message x)|
      )
    ))

Existe-t-il des commandes pratiques pour résoudre ce problème? Soit dans le noyau Emacs, paredit / smartparens ou d'autres packages?

Je sais que je peux appuyer )et paredit-close-roundcorriger la parenthèse suivante, mais je veux les corriger tous en une seule commande.

Wilfred Hughes
la source

Réponses:

7

i( lispy-tab) de lispy fait exactement cela. Ci-dessous, une capture d'écran d'une visualisation de test ERT (en utilisant xv( lispy-view-test)).

lispy-tab

abo-abo
la source
Pour clarifier: point doit être au début du defun pour que cela fonctionne, correct?
Wilfred Hughes
Oui, l'opération s'applique toujours au sexp actuel. Je ne voudrais pas réindenter le code non lié.
abo-abo