Neovim 0.4, una versió modernitzada de l'editor Vim, està disponible

publicat alliberament Neovim 0.4, una bifurcació de l'editor de Vim, centrat per augmentar l'extensibilitat i la flexibilitat. Desenvolupaments originals del projecte propagació sota la llicència Apache 2.0, i la part base sota la llicència Vim.

En el marc del projecte Neovim, fa més de cinc anys que s'està reelaborant la base de codi Vim, com a resultat dels quals es fan canvis que simplifiquen el manteniment del codi, proporcionen un mitjà per dividir la feina entre diversos mantenedors, separen la interfície de la part base (la interfície es pot canviar sense tocar les parts internes) i implementar una nova arquitectura extensible basat en complements.

Un dels problemes de Vim que va provocar la creació de Neovim va ser la seva base de codi monolítica i inflada, que consta de més de 300 mil línies de codi C (C89). Només unes poques persones entenen tots els matisos de la base de codi Vim, i tots els canvis estan controlats per un responsable, cosa que dificulta el manteniment i la millora de l'editor. En lloc del codi integrat al nucli de Vim per donar suport a la GUI, Neovim proposa utilitzar una capa universal que us permeti crear interfícies utilitzant diversos conjunts d'eines.

Els connectors per a Neovim es llancen com a processos separats, per a la interacció amb els quals s'utilitza el format MessagePack. La interacció amb els connectors es realitza de manera asíncrona, sense bloquejar els components bàsics de l'editor. Per accedir al connector, es pot utilitzar un sòcol TCP, és a dir. el connector es pot executar en un sistema extern. Al mateix temps, Neovim segueix sent compatible amb Vim, continua donant suport a Vimscript (s'ofereix Lua com a alternativa) i admet connexions per a la majoria dels connectors estàndard de Vim. Les funcions avançades de Neovim es poden utilitzar en connectors creats amb API específiques de Neovim.

Actualment ja preparat Hi ha uns 80 connectors específics, enllaços disponibles per crear connectors i implementar interfícies utilitzant diversos llenguatges de programació (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) i frameworks (Qt5, ncurses, Node.js, Electron, GTK+). S'estan desenvolupant diverses opcions d'interfície d'usuari. Els complements de GUI són molt semblants als connectors, però a diferència dels connectors, inicien trucades a funcions de Neovim, mentre que els connectors es criden des de Neovim.

Alguns dels canvis en nova versió:

  • S'ha afegit una gran part de noves funcions de l'API i esdeveniments de la interfície d'usuari.
  • S'ha afegit una nova biblioteca estàndard Nvim-Lua per desenvolupar connectors en l'idioma Lua.
  • El desenvolupament del protocol d'interfície d'usuari continua, actualitzant la informació a la pantalla a nivell de línies, en lloc de caràcters individuals.
  • S'ha afegit suport per a finestres flotants de ple dret, que es poden col·locar a qualsevol ubicació, adjuntar-se, enllaçar a memòries intermèdies d'edició individuals i agrupar-se en mode multigrid.
  • S'ha afegit l'opció "pumblend" per als menús desplegables translúcids.

Font: opennet.ru

Afegeix comentari