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

Je voudrais des parens arc-en-ciel pour l’édition de Clojure dans Emacs et puisque VI le fait, je suppose que dans Emacs ça devrait être quelque chose comme Mx Butterfly ou quelque chose comme ça 🙂

C’est une vieille question maintenant, mais j’ai récemment écrit le mode RainbowDelimiters pour cela. Il s’agit d’un mode de type «arc-en-ciel parens» qui permet de colorer tous les parens, crochets et accolades, en gardant à l’esprit la programmation Clojure.

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

La chose la plus importante est que c’est rapide – tous les autres modes paren arc-en-ciel que j’ai essayé de ralentir beaucoup l’édition (en particulier le défilement). Je me suis efforcé de le profiler et de l’optimiser, sans impact notable sur la vitesse de défilement / édition.

Vous pouvez trouver des informations à ce sujet sur la page EmacsWiki , et le mode lui-même est à rainbow-delimiters.el .

J’utilise highlight-parentheses-mode du script mquander mentionné. Il ne fournit pas beaucoup d’effet arc-en-ciel, 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 que avec les highlight-parentheses-mode en highlight-parentheses-mode seules les parens qui contiennent réellement le point seront mises en évidence (et seulement un nombre limité de niveaux). Je trouve ce comportement utile, mais il fait peut-être un peu défaut dans la zone de beauté par rapport à la méthode Vimclojure.

Je remarque maintenant que je ne me suis jamais mis à réparer ces couleurs de paren externes … Peut-être que je vais le faire maintenant que vous m’en avez rappelé.

Voici un mode pour celui que j’ai utilisé brièvement dans le passé. Voici un autre que je n’ai pas essayé.