Lanzamento de Neovim 0.7.0, unha versión modernizada do editor Vim

Lanzouse Neovim 0.7.0, un fork do editor de Vim centrado 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. Os conxuntos preparados están preparados para Linux (appimage), Windows e macOS.

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.

A nova versión ofrece soporte inicial para o traballo remoto, o que lle permite executar Neovim no servidor e conectarse a el desde o sistema cliente mediante un ui_client separado. Outros cambios inclúen: interrompeuse o soporte para Python 2, permitiuse o uso de funcións Lua no mapa de teclas, engadíronse novos comandos á API, ampliouse significativamente a capacidade de usar a linguaxe Lua para desenvolver complementos e a xestión da configuración. Melloráronse as ferramentas para diagnosticar problemas no código, engadiuse soporte para a barra de estado global, realizáronse optimizacións de rendemento. Ampliáronse as capacidades do cliente LSP (Language Server Protocol) integrado, que se pode usar para transferir a lóxica de análise e a finalización do código a servidores externos.

Fonte: opennet.ru

Engadir un comentario