Neovim 0.4, una versión modernizada del editor Vim, está disponible

publicado relizar Neovim 0.4, una bifurcación del editor Vim, enfocado en aumentar la extensibilidad y la flexibilidad. Desarrollos originales del proyecto. propagar bajo la licencia Apache 2.0, y la parte base bajo la licencia Vim.

En el marco del proyecto Neovim, la base del código Vim se ha estado reelaborando durante más de cinco años, como resultado de lo cual se realizan cambios que simplifican el mantenimiento del código, proporcionan un medio para dividir el trabajo entre varios mantenedores, separan la interfaz del parte base (la interfaz se puede cambiar sin tocar las partes internas) e implementar una nueva arquitectura extensible basado en complementos.

Uno de los problemas con Vim que impulsó la creación de Neovim fue su base de código monolítica e inflada, que consta de más de 300 mil líneas de código C (C89). Solo unas pocas personas comprenden todos los matices del código base de Vim y todos los cambios están controlados por un responsable, lo que dificulta el mantenimiento y la mejora del editor. En lugar del código integrado en el núcleo de Vim para admitir la GUI, Neovim propone utilizar una capa universal que le permite crear interfaces utilizando varios kits de herramientas.

Los complementos para Neovim se inician como procesos separados, para la interacción con los cuales se utiliza el formato MessagePack. La interacción con los complementos se realiza de forma asíncrona, sin bloquear los componentes básicos del editor. Para acceder al complemento, se puede utilizar un socket TCP, es decir. El complemento se puede ejecutar en un sistema externo. Al mismo tiempo, Neovim sigue siendo compatible con Vim, sigue siendo compatible con Vimscript (se ofrece Lua como alternativa) y admite conexiones para la mayoría de los complementos estándar de Vim. Las funciones avanzadas de Neovim se pueden utilizar en complementos creados con API específicas de Neovim.

Actualmente ya preparado Hay alrededor de 80 complementos específicos, enlaces disponibles para crear complementos e implementar interfaces utilizando varios lenguajes de programación (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) y marcos (Qt5, ncurses, Node.js, Electrón, GTK+). Se están desarrollando varias opciones de interfaz de usuario. Los complementos de GUI son muy parecidos a los complementos, pero a diferencia de los complementos, inician llamadas a funciones de Neovim, mientras que los complementos se llaman desde Neovim.

Algunos de los cambios en nueva versión:

  • Se agregó una gran parte de nuevas funciones API y eventos de interfaz de usuario.
  • Se agregó una nueva biblioteca estándar Nvim-Lua para desarrollar complementos en el lenguaje Lua.
  • El desarrollo del protocolo de interfaz de usuario continúa, actualizando la información en la pantalla a nivel de líneas, en lugar de caracteres individuales.
  • Se agregó soporte para ventanas flotantes completas, que se pueden colocar en cualquier ubicación, adjuntar, vincular a búferes de edición individuales y agrupar en modo Multigrid.
  • Se agregó la opción 'pumblend' para menús desplegables translúcidos.

Fuente: opennet.ru

Añadir un comentario