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

publicado liberación Neovim 0.4, un fork do editor de Vim, enfocado sobre o aumento da extensibilidade e flexibilidade. Desenvolvementos orixinais do proxecto espallamento baixo a licenza Apache 2.0 e a parte base baixo a licenza Vim.

No marco do proxecto Neovim, a base de código Vim leva máis de cinco anos sendo reelaborada, como resultado do cal se realizan cambios que simplifican o mantemento do código, proporcionan un medio para dividir o traballo entre varios mantedores, separan a interface do parte base (a interface pódese cambiar sen tocar as partes internas) e implementar unha nova arquitectura extensible baseado en complementos.

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 preparado uns 80 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 (Qt5, ncurses, Node.js, Electron, GTK+). Estase a desenvolver varias opcións de interface de usuario. Os complementos da GUI son moi parecidos aos complementos, pero a diferenza dos complementos, inician chamadas ás funcións de Neovim, mentres que os complementos son chamados desde Neovim.

Algúns dos cambios en nova versión:

  • Engadíronse unha gran parte de novas funcións da API e eventos da interface de usuario.
  • Engadiuse unha nova biblioteca estándar Nvim-Lua para desenvolver complementos na linguaxe Lua.
  • O desenvolvemento do protocolo de interface de usuario continúa, actualizando a información na pantalla a nivel de liñas, en lugar de caracteres individuais.
  • Engadido soporte para fiestras flotantes completas, que se poden colocar en calquera lugar, anexar, ligar a búfers de edición individuais e agruparse en modo Multigrid.
  • Engadiuse a opción "pumblend" para os menús despregables translúcidos.

Fonte: opennet.ru

Engadir un comentario