Paréntesis y llaves de colores en Emacs, gracias a Rainbow Delimiters

Paréntesis y llaves de colores en Emacs, gracias a Rainbow Delimiters
Sin comentarios Facebook Twitter Flipboard E-mail

En 1976, cuando Richard Stallman creó Emacs, los programadores editaban en monocromo, lo cual ya era mucho mejor que tener que perforar tarjetas. Pero con los años se fueron añadiendo características a Emacs, vi y demás competidores de la guerra de editores, dirigidas a facilitar la legibilidad del código; y a día de hoy es impensable encontrar un IDE que no resalte el código de una u otra forma.

Sin embargo, la mayoría del resaltado se sigue realizando más a nivel morfológico que sintáctico o léxico. Y aunque podemos situarnos sobre un paréntesis o una llave para que se nos marque dónde está su compañera de apertura o cierre, ¿no sería mucho más apropiado que a simple vista y sin necesidad de desplazarnos por el texto pudiéramos saber qué nivel de profundidad tiene un determinado paréntesis? ¿Tiene sentido que todos los signos delimitadores se muestren siempre con el mismo color, y especialmente en lenguajes como Lisp o Scheme, donde tan fácil es cometer errores por ello?

Por ejemplo, en el siguiente código falta un paréntesis. ¿Adivináis dónde?

Código Lisp al que le falta un paréntesis

Esto dio pie a la aparición de rainbow-delimiters, un plugin de Emacs que es capaz de resaltar llaves, corchetes y paréntesis basándose en su profundidad. Una funcionalidad tan simple como efectiva, y que además se ejecuta con gran velocidad, no afectando al rendimiento de la aplicación al hacer algo tan habitual como deslizar el scroll de un documento.

Incluso le salió un fork, rainbow-blocks, que va un paso más allá y no resalta de distinto color sólo los caracteres delimitadores, sino todo el texto comprendido entre ellos. Para mi gusto, tanto colorín puede resultar cansino a la vista, pero desde luego cumple con su función de marcar claramente la profundidad del código.

Resaltado de bloques de Lisp con rainbow-blocks

Y mi duda es, ¿cómo es que el resto de editores no han implementado todavía una funcionalidad similar de serie? Personalmente, estoy deseando que Scintilla lo incorpore a su motor para poder verlo en Notepad++.

¿Alguien se anima a desarrollarlo como plugin para otro editor?

Descarga | GitHub
Instrucciones de instalación y uso| EmacsWiki: Rainbow Delimiters
Imagen de cabecera | emacs-fu

Comentarios cerrados
Inicio