Álvaro González Sotillo

Contribuciones a paquetes Emacs

Uso Emacs desde que necesité editar documentos en Latex. En ese momento no encontré un editor mejor para ello, aunque ahora posiblemente elegiría VSCode.

Precisamente porque VSCode tiene buenas ideas, he acabado haciendo algunas contribuciones a Emacs para incluir algunas de esas cosas que hecho de menos. Porque no se puede vivir solo de no usar el ratón.

En esta entrada de blog iré acumulando mis contribuciones a este proyecto.

centaur-tabs

Se trata de un paquete que implementa unas pestañas para cambiar de buffer, desde mi punto de vista más estético y funcional que los incluidos en Emacs. Colaboré con los botones de navegación de la izquierda, y añadiendo un menú contextual a las pestañas, inspirado en el de VSCode. /assets/blog/contribuciones-emacs/centaur-tabs.png

dump-jump

Implementa una forma simple, pero altamente efectiva, de localizar la declaración de una variable/funcion/objeto en un proyecto. Contribuí con varias definiciones útiles para Latex.

region-occurrences-highlighter

Es un paquete propio, ya comentado en este blog. Hace que se resalten las ocurrencias de la selección actual, tal y como hace VSCode.

screencast-emacs.gif

diff-hl

Resalta en el margen los cambios realizados a un fichero que aún no estén confirmados en el control de versiones. He contribuído con ventanas emergentes que muestran los cambios realizados en cada hunk. Empezó como un intento de quick diff de eclipse, con ventanas independientes, y acabó inline como en VSCode.

/assets/blog/contribuciones-emacs/inlinepopup.gif

origami-predef

Es un paquete propio, también comentado en este blog. Utiliza origami para ocultar secciones de los ficheros cuando son abiertos, basándose en marcadores del fichero.

gift-mode

El formato gift se utiliza para crear cuestionarios en Moodle a partir de ficheros de texto plano. Emacs tiene un modo para este formato, pero carecía de integración con imenu, así que me decidí a implementarlo.

blamer.el

Imitando a gitlens, añade una anotación a la línea en curso con información del commit que introdujo dicha línea en el repositorio. Mi contribución se centra en el toottip que muestra dicha información, y un ejemplo de acción al hacer click.

/assets/blog/contribuciones-emacs/blamer-el.png