Neovim 0.5, unha versión modernizada do editor Vim, está dispoñible

Despois de case dous anos de desenvolvemento, lanzouse Neovim 0.5, unha bifurcación do editor de Vim centrada en aumentar a extensibilidade e flexibilidade. O proxecto leva máis de sete anos reelaborando a base de código Vim, como resultado dos cales se realizan cambios que simplifican o mantemento do código, proporcionan un medio para dividir o traballo entre varios mantedores, separan a interface da parte base (a interface pódese cambiado sen tocar as partes internas) e implementar unha nova arquitectura extensible baseada en complementos. Os desenvolvementos orixinais do proxecto distribúense baixo a licenza Apache 2.0 e a parte básica distribúese baixo a licenza Vim.

Un dos problemas de Vim que provocou a creación de Neovim foi a súa base de código monolítica e inchada, formada por máis de 300 mil liñas de código C (C89). Só unhas poucas persoas entenden todos os matices da base de código de Vim e todos os cambios están controlados por un mantedor, o que dificulta o mantemento e mellora do editor. En lugar do código integrado no núcleo de Vim para admitir a GUI, Neovim propón usar unha capa universal que che permita crear interfaces usando varios conxuntos de ferramentas.

Os complementos para Neovim lánzanse como procesos separados, para a interacción cos que se usa o formato MessagePack. A interacción cos complementos realízase de forma asíncrona, sen bloquear os compoñentes básicos do editor. Para acceder ao complemento pódese usar un socket TCP, é dicir. o complemento pódese executar nun sistema externo. Ao mesmo tempo, Neovim segue sendo compatible con Vim, segue admitindo Vimscript (ofrece Lua como alternativa) e admite conexións para a maioría dos complementos estándar de Vim. As funcións avanzadas de Neovim pódense usar en complementos creados mediante API específicas de Neovim.

Actualmente, xa se prepararon uns 130 complementos específicos, hai conexións dispoñibles para crear complementos e implementar interfaces usando varias linguaxes de programación (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) e frameworks (Qt, ncurses, Node .js, Electron, GTK). Estase a desenvolver varias opcións de interface de usuario. Os complementos da GUI son similares aos complementos en moitos aspectos, pero a diferenza dos complementos, inician chamadas a funcións de Neovim, mentres que os complementos son chamados dende Neovim.

Algúns dos cambios na nova versión:

  • Engadiuse un cliente LSP (Language Server Protocol) integrado en Lua, que se pode usar para conectarse a servizos externos para a análise e completar o código.
  • Engadiuse unha API para controlar o deseño dos búfers de asignación.
  • Engadiuse unha API para usar etiquetas estendidas para rastrexar os cambios a nivel de bytes.
  • Soporte ampliado para Lua como linguaxe para o desenvolvemento de complementos e a xestión da configuración.
  • Engadido soporte experimental para o motor de análise de árbores.

Fonte: opennet.ru

Engadir un comentario