Neovim 0.5 on nüüd saadaval, täiustatud versioon Vim'i redigeerijast

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

Vim-i probleemidest, mis inspireerisid Neovimi loomist, tõstatatakse paisutatud monoliitne koodibaas, mis koosneb rohkem kui 300 000 reas C (C89) keeles. Kõigis Vim-i koodibaasi nüanssides mõistab vaid mõned inimesed, samas kui kõiki muudatusi kontrollib üks hooldaja, mis raskendab redaktori hooldust ja arendamist. Neovim pakub GUI toe toetamiseks kaasasoleva Vim-i koodi asemel universaalset kihte, mis võimaldab erinevate tööriistade kasutamist liideste loomisel.

Neovimi pluginate käivitatakse eraldi protsessidena, mille suhtlemiseks kasutatakse MessagePack formaati. Pluginate vaheline suhtlus toimub asünkroonselt ning ei blokeeri toimetaja põhikomponente. Pluginatele juurdepääsuks võib kasutada TCP-soket, st plugin võib töötada välises süsteemis. Sellegipoolest on Neovim täielikult ühilduv Vimi ka, toetades Vimscripti (alternatiivina on pakutud Lua) ning enamikku Viimi vaikimisi pluginaid. Neovimi täiendavaid võimalusi saab kasutada pluginate arendamisel, mis on loodud Neovimile spetsiifilist API-d kasutades.

Praegu on valmis juba umbes 130 spetsiaalset plugini, saadaval on sidemed pluginite ja liideste loomiseks erinevate programmeerimiskeelte (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ja raamistikud (Qt, ncurses, Node.js, Electron, GTK) kasutamiseks. Arendatakse mitmeid kasutajaliidese variante. GUI-lisandmoodulid meenutavad paljuski pluginaid, kuid erinevalt pluginatest käivitavad need Neovimi funktsioonide kutsumist, samas kui pluginaid kutsutakse Neovimist.

Mõned muutused uues versioonis:

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

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster