Vim засварлагчийн шинэчилсэн хувилбар болох Neovim 0.7.0 хувилбар

Neovim 0.7.0 гарсан бөгөөд Vim засварлагчийн салаа нь өргөтгөх чадвар, уян хатан байдлыг нэмэгдүүлэхэд чиглэгддэг. Төсөл нь долоон жил гаруй хугацаанд Vim кодын баазыг дахин боловсруулж байгаа бөгөөд үүний үр дүнд кодын засвар үйлчилгээг хялбаршуулсан, хэд хэдэн засварлагчдын хооронд хөдөлмөрийг хуваах, интерфейсийг үндсэн хэсгээс тусгаарласан өөрчлөлтүүд хийгдсэн (интерфэйс нь байж болно). дотоод хэсгүүдэд хүрэлгүйгээр өөрчлөгдсөн) болон залгаасууд дээр суурилсан шинэ өргөтгөх архитектурыг хэрэгжүүлнэ. Төслийн анхны боловсруулалтыг Apache 2.0 лицензийн дагуу, үндсэн хэсгийг Vim лицензийн дагуу түгээдэг. Бэлэн угсралтуудыг Linux (appimage), Windows болон macOS-д зориулж бэлтгэсэн.

Neovim-ийг бүтээхэд түлхэц болсон Vim-тэй холбоотой асуудлуудын нэг нь түүний 300 мянга гаруй мөр C (C89) кодоос бүрдсэн цул кодын суурь юм. Цөөн хэдэн хүмүүс Vim кодын бүх нарийн ширийнийг ойлгодог бөгөөд бүх өөрчлөлтийг нэг засварлагч удирддаг бөгөөд энэ нь засварлагчийг хадгалах, сайжруулахад хэцүү болгодог. GUI-г дэмжихийн тулд Vim цөмд суулгасан кодын оронд Neovim нь төрөл бүрийн хэрэглүүрийг ашиглан интерфейс үүсгэх боломжийг олгодог бүх нийтийн давхаргыг ашиглахыг санал болгож байна.

Neovim-д зориулсан залгаасууд нь MessagePack форматыг ашигладаг тусдаа процесс болгон ажиллуулдаг. Залгаасуудтай харилцах нь засварлагчийн үндсэн бүрэлдэхүүн хэсгүүдийг хаахгүйгээр асинхрон байдлаар явагддаг. Plugin руу нэвтрэхийн тулд TCP залгуурыг ашиглаж болно, i.e. залгаасыг гадаад систем дээр ажиллуулж болно. Үүний зэрэгцээ Neovim нь Vim-тэй нийцтэй хэвээр байгаа бөгөөд Vimscript-ийг үргэлжлүүлэн дэмждэг (Луа нь өөр хувилбараар санал болгодог) бөгөөд ихэнх стандарт Vim залгаасуудын холболтыг дэмждэг. Neovim-ийн дэвшилтэт функцуудыг Neovim-ийн тусгай API ашиглан бүтээсэн залгаасуудад ашиглаж болно.

Одоогоор 130 орчим тусгай залгаасуудыг аль хэдийн бэлтгэсэн байгаа бөгөөд төрөл бүрийн програмчлалын хэл (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) болон фреймворк (Qt, ncurses, Node .js, Electron, GTK). Хэрэглэгчийн интерфейсийн хэд хэдэн сонголтыг боловсруулж байна. GUI нэмэлтүүд нь залгаастай төстэй боловч залгаасуудаас ялгаатай нь Neovim функцууд руу залгадаг бол залгаасуудыг Neovim дотроос дууддаг.

В новой версии предложена начальная поддержка удалённой работы, позволяющая запустить Neovim на сервере и подключаться к нему с клиентской системы, используя отдельный ui_client. Среди других изменений: прекращена поддержка Python 2, разрешено использовании Lua-функций в keymap, добавлены новые команды в API, значительно расширены возможности по использованию языка Lua для разработки плагинов и управления конфигурацией, улучшены средства диагностики проблем в коде, добавлена поддержка глобальной строки состояния, проведены оптимизации производительности. Расширены возможности встроенного LSP-клиента (Language Server Protocol), который можно использовать для выноса логики анализа и автодополнения кода на внешние серверы.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх