Neovim 0.5, një version i modernizuar i redaktorit Vim, është i disponueshëm

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

Një nga problemet me Vim që nxiti krijimin e Neovim ishte baza e kodit të fryrë, monolit, e përbërë nga më shumë se 300 mijë rreshta të kodit C (C89). Vetëm pak njerëz i kuptojnë të gjitha nuancat e bazës së kodit Vim dhe të gjitha ndryshimet kontrollohen nga një mirëmbajtës, gjë që e bën të vështirë mirëmbajtjen dhe përmirësimin e redaktuesit. Në vend të kodit të integruar në bërthamën Vim për të mbështetur GUI, Neovim propozon përdorimin e një shtrese universale që ju lejon të krijoni ndërfaqe duke përdorur mjete të ndryshme.

Shtojcat për Neovim lansohen si procese të veçanta, për ndërveprim me të cilin përdoret formati MessagePack. Ndërveprimi me shtojcat kryhet në mënyrë asinkrone, pa bllokuar përbërësit bazë të redaktuesit. Për të hyrë në plugin, mund të përdoret një prizë TCP, d.m.th. shtojca mund të ekzekutohet në një sistem të jashtëm. Në të njëjtën kohë, Neovim mbetet i pajtueshëm me Vim, vazhdon të mbështesë Vimscript (Lua ofrohet si një alternativë) dhe mbështet lidhjet për shumicën e shtojcave standarde Vim. Karakteristikat e avancuara të Neovim mund të përdoren në shtojcat e ndërtuara duke përdorur API specifike të Neovim.

Aktualisht, rreth 130 shtojca specifike janë përgatitur tashmë, lidhjet janë të disponueshme për krijimin e shtojcave dhe zbatimin e ndërfaqeve duke përdorur gjuhë të ndryshme programimi (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) dhe korniza (Qt, ncurses, Node .js, Electron, GTK). Disa opsione të ndërfaqes së përdoruesit janë duke u zhvilluar. Shtesat GUI janë shumë të ngjashme me shtojcat, por ndryshe nga shtojcat, ato iniciojnë thirrje për funksionet e Neovim, ndërsa shtojcat thirren nga brenda Neovim.

Disa nga ndryshimet në versionin e ri:

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

Burimi: opennet.ru

Shto një koment