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 функцийг ашиглахыг зөвшөөрсөн, API-д шинэ командууд нэмэгдсэн, залгаасууд болон тохиргооны менежментийг хөгжүүлэхэд Lua хэлийг ашиглах чадвар мэдэгдэхүйц өргөжсөн, Кодын асуудлыг оношлох хэрэгслүүд сайжирч, дэлхийн статус самбарын дэмжлэг нэмэгдэж, гүйцэтгэлийн оновчлол хийгдсэн. Суурилуулсан LSP клиентийн (Language Server Protocol) чадавхийг өргөтгөсөн бөгөөд энэ нь шинжилгээний логик болон кодын бөглөх үйлдлийг гадаад сервер рүү шилжүүлэхэд ашиглаж болно.

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

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