Comment puis-je obtenir des "parenthèses arc-en-ciel" dans emacs?

Je voudrais rainbow parens pour éditer Clojure dans Emacs et puisque VI fait ceci je suppose que dans Emacs il devrait être quelque chose comme M-x butterfly ou quelque chose:)

47
demandé sur Arthur Ulfeldt 2010-03-10 01:23:30

3 réponses

C'est une vieille question maintenant, mais j'ai récemment écrit RainbowDelimiters mode pour cela. C'est un mode de type "rainbow parens" qui colore tous les parens, supports et accolades, fait avec la programmation Clojure à l'esprit.

Il met en évidence tout le tampon, pas seulement le point environnant parens.

La chose la plus importante est que c'est FAST - tous les autres modes rainbow paren que j'ai essayé de ralentir l'édition (en particulier le défilement) tout à fait beaucoup. J'ai mis des efforts importants dans le profilage et l'optimisation afin de ne pas avoir d'impact notable sur la vitesse de défilement/édition.

Vous pouvez trouver des informations à ce sujet à la Page EmacsWiki, et le mode lui-même est à arc-en-délimiteurs.el.

54
répondu Jeremy Rayman 2014-03-13 00:42:10

J'utilise highlight-parentheses-mode du script mquander mentionné. Il ne fournit pas beaucoup d'effet arc-en-ciel hors de la boîte, mais il est personnalisable:

(setq hl-paren-colors
      '(;"#8f8f8f" ; this comes from Zenburn
                   ; and I guess I'll try to make the far-outer parens look like this
        "orange1" "yellow1" "greenyellow" "green1"
        "springgreen1" "cyan1" "slateblue1" "magenta1" "purple"))

Je crois que J'ai levé les couleurs réelles de Vimclojure. Notez que Vimclojure met en évidence toutes les parenthèses dans le fichier, alors qu'avec highlight-parentheses-mode seuls les parens qui contiennent réellement le point seront mis en évidence (et seulement un nombre limité de niveaux). Je trouve ce comportement utile, mais il manque peut-être un peu dans la zone de joliesse par rapport à la façon Vimclojure.

Je remarque maintenant que je n'ai jamais réussi à réparer ces couleurs paren extérieures en fait... Peut-être que je le ferai maintenant que vous m'avez rappelé à ce sujet.

22
répondu Michał Marczyk 2010-03-09 23:41:41

Voici un mode que j'ai utilisé dans le passé brièvement. En voici un autre {[2] } que je n'ai pas essayé.

2
répondu mquander 2010-03-09 22:30:05