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

Neovim 0.6.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 дотроос дууддаг.

Шинэ хувилбарын зарим өөрчлөлтүүд:

  • Орон нутгийн хувьсагчийн дэмжлэгийг vim скриптүүдэд нэмсэн бөгөөд хамрах хүрээ нь зөвхөн одоогийн скриптээр хязгаарлагддаг.
  • Plugin хөгжүүлэлт болон тохиргооны удирдлагын Lua хэлний дэмжлэгийг мэдэгдэхүйц сайжруулсан. Vim скриптүүдэд v:lua угтварыг (жишээ нь, “arg1->v:lua.somemod.func(arg2)”) зааж өгснөөр Lua функцийг арга хэлбэрээр дуудах чадварыг нэмсэн.
  • Суурилуулсан LSP клиентийн (Language Server Protocol) чадавхийг өргөтгөсөн бөгөөд энэ нь шинжилгээний логик болон кодын бөглөх үйлдлийг гадаад сервер рүү шилжүүлэхэд ашиглаж болно. LSP-ийн хэрэглээ нь Visual Studio Code редакторт зориулж бэлтгэсэн янз бүрийн програмчлалын хэлэнд 150 гаруй бэлэн боловсруулагч ашиглах боломжийг олгодог.
  • Кодын асуудлыг оношлох сайжруулсан хэрэгслүүд. Оношилгооны мессежийн текстийг харуулах, ийм мессежтэй холбоотой код бүхий хөвөгч цонхыг харуулах боломжийг нэмсэн. LSP серверээр дамжуулсан оношилгооны мессежийг боловсруулах боломжтой.
  • Жишээлбэл, үйлчилгээний мэдээлэл бүхий блокуудыг харуулахад ашиглаж болох виртуал мөрүүдийн дэмжлэгийг нэмсэн.
  • Төрөл бүрийн гүйцэтгэлийн оновчлол хийгдсэн, жишээлбэл, тодруулсан бүлгийн нэрсийн хэш хүснэгтийг идэвхжүүлсэн.
  • Windows 7 болон Windows-ийн 32 битийн хувилбаруудыг дэмжихээ больсон.

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

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