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

После почти двух лет разработки опубликован релиз Neovim 0.5, ответвления от редактора Vim, сфокусированного на повышении расширяемости и гибкости. В рамках проекта уже более семи лет проводится переработка кодовой базы Vim, в результате которой вносятся изменения, упрощающие сопровождение кода, предоставляющие средства разделения труда между несколькими мэйнтейнерами, отделяющие интерфейс от базовой части (интерфейс можно менять не трогая внутренности) и реализующие новую расширяемую архитектуру на основе плагинов. Оригинальные наработки проекта распространяются под лицензией Apache 2.0, а базовая часть под лицензией Vim.

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 s'han preparat uns 130 connectors específics, hi ha disponibles enllaços per crear connectors i implementar interfícies utilitzant diversos llenguatges de programació (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) i frameworks (Qt, ncurses, Node .js, Electron, GTK). S'estan desenvolupant diverses opcions d'interfície d'usuari. Els complements de la GUI són similars als connectors de moltes maneres, però a diferència dels connectors, inicien trucades a funcions de Neovim, mentre que els connectors es criden des de Neovim.

Alguns dels canvis de la nova versió:

  • Добавлен встроенный LSP-клиент (Language Server Protocol) на языке Lua, который можно использовать для подключения к внешним сервисам для анализа и автодополнения кода.
  • Добавлен API для управления оформлением буферов выделения.
  • Добавлен API для использования расширенных меток, позволяющих отслеживать изменения на уровне отдельных байтов.
  • Расширена поддержка Lua, как языка для разработки плагинов и управления конфигурацией.
  • Добавлена экспериментальная поддержка движка разбора синтаксиса tree-sitter.

Font: opennet.ru

Afegeix comentari