GNU Emacs 29 prepara el soporte para WebP, Tree-sitter, mejoras y mas
Hace poco Eli Zaretskii, uno de los principales desarrolladores de emacs, dijo que una versión beta debería estar disponible muy pronto a menos que se identifiquen problemas graves en el código.
Con ello se menciona que la próxima versión de GNU Emacs 29 debería venir con soporte de formato de imagen WebP, Tree-sitter, herramienta de generación de analizador y biblioteca de analizador incremental, Eglot (Emacs Polyglot), LSP (Protocolo de servidor de idiomas) para Emacs, así como varias otras mejoras.
¿Qué novedades nos esperan en el lanzamiento de GNU Emacs 29 ?
En la publicación que compartió Eli Zaretskii destaca que una de las principales novedades que se preparan para la nueva versión de Emacs 29 Tree-sitter, una herramienta de generación de analizadores y una biblioteca de análisis incremental.
Se menciona que con ella se puede construir un árbol de sintaxis concreto para un archivo de origen y actualizar de manera eficiente el árbol de sintaxis cuando se edita el archivo de origen. A partir de ahí, no solo se puede resaltar la sintaxis a alta velocidad.
Actualmente, tree-sitter de Emacs admite los modos principales:
- bash-ts-mode
- c-ts-mode
- c++-ts-mode
- csharp-ts-mode
- css-ts-mode
- java-ts-mode
- js-ts-mode
- json-ts-mode
- python-ts-mode
- typescript-ts-mode
Cabe mencionar que la inclusión de Tree-sitter tiene actualmente un estado especial en emacs-29, ya que aún se le pueden agregar nuevas características, su fusión con la rama maestra aún es reciente.
Otro de los cambios que se espera para Emacs 29 es Eglot (Emacs Polyglot) es un cliente LSP (Protocolo de servidor de idiomas) para Emacs. Cabe mencionar que existen varias integraciones de LSP para Emacs, como LSP Mode, Eglot y lsp-bridge. De los tres, Eglot ahora es parte del núcleo de Emacs y según el equipo, ya no se necesita instalar un paquete, simplemente basta con registrar el servidor LSP y el autocompletado, la documentación, la detección de errores y otras funciones estarán disponibles de inmediato.
Ademas de ello, tambien se destaca que a partir de Emacs 29 ya se podra compilar con GTK puro y es que uno de los principales problemas de Emacs en Linux era su dependencia de Xorg cuando se ejecutaba en modo GUI, aunque en realidad el problema radica con Wayland que se ha vuelto cada vez más común en los últimos años, e incluso con la existencia de XWayland se ha convertido en una molestia. Ante ello ahora Emacs se podra compilar con GTK puro.
Tambien Emacs 29 permitirá la compilación con soporte nativo para SQLite y la biblioteca sqlite3, que según el equipo, este es ahora un comportamiento predeterminado, ya que tienes que pasar–sin-sqlite3al script de configuración al compilar Emacs para evitarlo.
Por otra parte, tambien se destaca el soporte de HaikuOS con lo cual ahora se podrá compilar Emacs directamente desde el sistema y el proceso de configuración debería detectar y construir automáticamente para Haiku.
Cabe mencionar que también hay un port opcional del sistema de ventanas a Haiku, que se puede habilitar configurando Emacs con la opción –with-be-app, que requerirá que los encabezados de desarrollo del kit de aplicación Haiku y un compilador de C++ estén presentes en su sistema. Si Emacs no está construido con la opción ‘–with-be-app’, el editor resultante solo funcionará en terminales en modo texto.
Por último y no menos importante, tambien se destaca que en Emacs 29 se ha añadido el soporte para mostrar imágenes en el formato.webp y ademas de que emacs tiene un mejor manejo de archivos .pdmp, ya que ahora, al crear un archivo de este tipo, incluirá en su nombre una huella digital de su estado actual, aunque siempre priorizará un archivo emacs.pdmp si existe.
Finalmente tambien podemos destacar que emacs ahora usa XInput 2, lo que permite que Emacs admita más eventos de entrada, como los eventos del panel táctil. Por ejemplo, de forma predeterminada, un gesto de pellizco en un trackpad aumenta o reduce el tamaño del texto. Esto es gracias al nuevo evento de pellizco, que viene con touch-end.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.