Өргөтгөх чадвар болон уян хатан байдлыг нэмэгдүүлэхэд чиглэсэн Vim засварлагчийн нэг хэсэг болох Neovim 0.7.0 хувилбарыг гаргалаа. Төсөл нь Vim кодын санг долоон жилийн турш дахин боловсруулж, кодын засвар үйлчилгээг хялбаршуулсан, олон засварлагчдын хооронд хөдөлмөрийг хуваах хэрэгслийг бий болгосон, интерфэйсийг цөмөөс нь салгасан (интерфэйсийг дотоод хэсгүүдэд хүрэлгүйгээр өөрчилж болно), мөн шинэ, өргөтгөх боломжтой, залгаас дээр суурилсан архитектурыг хэрэгжүүлсэн. Төслийн анхны бүтээл нь Apache 2.0 лицензийн дагуу, гол хэсэг нь Vim лицензийн дагуу лицензлэгдсэн. Дууссан хувилбарууд нь ...-д бэлэн байна. Linux (аппликейшн зураг), 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-ын дэмжлэг зогссон, keymaps-д Lua функцийг ашиглахыг зөвшөөрсөн, API-д шинэ командууд нэмэгдсэн, залгаас хөгжүүлэх болон тохиргооны менежментэд Lua ашиглах боломжууд мэдэгдэхүйц өргөжсөн, код оношилгооны хэрэгслүүдийг сайжруулсан, дэлхийн төлөвийн мөрийг дэмжих дэмжлэг нэмэгдсэн, гүйцэтгэлийн оновчлолыг хэрэгжүүлсэн. Суурилуулсан LSP (Хэлний Серверийн Протокол) үйлчлүүлэгчийн боломжуудыг өргөжүүлсэн бөгөөд энэ нь кодын шинжилгээ болон автоматаар гүйцээх логикийг гадаад болгох боломжийг олгосон. серверүүд.
Эх сурвалж: opennet.ru
