Quel mode mineur imprime la paren d'ouverture dans la zone d'écho?


10

C'est une fonctionnalité vraiment sympa, mais elle ne s'affiche que lors de l'insertion d'un paren, pas lors du passage à la position du curseur. Existe-t-il une commande interactive que je peux appeler pour afficher cela? Puis-je le configurer pour qu'il apparaisse lors du déplacement du curseur?

entrez la description de l'image ici

Réponses:


6

Ce message est imprimé lorsque le début du sexp n'est pas visible dans la fenêtre; sinon, la paren d'ouverture est temporairement mise en surbrillance.

Ce comportement est implémenté dans simple.elet n'est associé à aucun mode mineur. Il est implémenté à l'aide d'un hook qui s'exécute lorsqu'un caractère est inséré.

Le clignotement / message réel provient de la commande blink-matching-open, que vous pouvez appeler vous-même. Par exemple, vous pouvez démarrer un temporisateur inactif qui appellera cette commande chaque fois que vous marquez une courte pause sur un paren de fermeture. C'est ainsi que fonctionne le intégré show-paren-mode.

(defvar match-paren--idle-timer nil)
(defvar match-paren--delay 0.5)
(setq match-paren--idle-timer (run-with-idle-timer match-paren--delay t #'blink-matching-open))

Je le veux aussi, mais comment le rendre non temporaire? C'est-à-dire que je veux que le message reste dans le mini-tampon jusqu'à ce que le curseur soit déplacé.
Faheem Mitha

4

Vous pouvez utiliser M-x blink-matching-open RETpour afficher le message si vous êtes juste après un paren. Pour le faire plus "à la volée" que vous aimeriez essayer M-x show-paren-mode, il ne vous donne pas réellement ce message.

Sinon, vous pourriez utiliser quelque chose comme

(add-hook 'post-command-hook
          (lambda ()
            (if (and (not (bobp))
                     (eq ?\) (char-syntax (char-before))))
                (blink-matching-open))))
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.