Derxistina Neovim 0.6.0, guhertoyek nûjenkirî ya edîtorê Vim

Neovim 0.6.0 hate berdan, forkek edîtorê Vim-ê ku balê dikişîne ser zêdekirina berfirehbûn û nermbûnê. Proje ji heft sal zêdetir e ku bingeha koda Vim-ê ji nû ve dixebitîne, di encamê de guhertin têne çêkirin ku lênihêrîna kodê hêsan dike, navgînek dabeşkirina kar di navbera çend parêzgeran de peyda dike, navberê ji beşa bingehîn veqetîne (navber dikare bibe guheztin bêyî destwerdana hundurîn) û mîmariyek nû ya berfirehkirî ya li ser bingeha pêvekan bicîh bikin. Pêşveçûnên bingehîn ên projeyê di bin lîsansa Apache 2.0 de têne belav kirin, û beşa bingehîn di bin lîsansa Vim de têne belav kirin. Civînên amadekirî ji bo Linux (appimage), Windows û macOS-ê têne amadekirin.

Yek ji pirsgirêkên bi Vim-ê ku bû sedema afirandina Neovim-ê, bingeha koda wê ya şêlandî, yekparêz bû, ku ji zêdetirî 300 hezar rêzikên koda C (C89) pêk tê. Tenê çend kes hemî nuwazeyên bingeha koda Vim fam dikin, û hemî guhertin ji hêla yek parêzgerê ve têne kontrol kirin, ku ev yek parastin û çêtirkirina edîtorê dijwar dike. Li şûna koda ku di bingeha Vim-ê de hatî çêkirin da ku GUI-yê piştgirî bike, Neovim pêşniyar dike ku meriv qatek gerdûnî bikar bîne ku dihêle hûn bi karanîna amûrên cûrbecûr navrûyan biafirînin.

Pêvekên ji bo Neovim wekî pêvajoyên cihêreng têne destpêkirin, ji bo danûstendina ku bi formata MessagePack re tê bikar anîn. Têkiliya bi pêvekan re bi asynchronously pêk tê, bêyî astengkirina pêkhateyên bingehîn ên edîtorê. Ji bo gihîştina pêvekê, soketek TCP dikare were bikar anîn, ango. pêvek dikare li ser pergalek derveyî were xebitandin. Di heman demê de, Neovim bi Vim re lihevhatî paşve dimîne, piştgiriya Vimscript didomîne (Lua wekî alternatîfek tê pêşkêş kirin) û girêdanên ji bo piraniya pêvekên standard Vim piştgirî dike. Taybetmendiyên pêşkeftî yên Neovim dikarin di pêvekên ku bi karanîna API-yên Neovim-taybet hatine çêkirin de werin bikar anîn.

Heya nuha, nêzîkê 130 pêvekên taybetî jixwe hatine amade kirin, girêdan ji bo afirandina pêvekan û pêkanîna pêvekan bi karanîna zimanên bernamenûs ên cihêreng (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) û çarçove hene (Qt, ncurses, Node .js, Elektron, GTK). Gelek vebijarkên navbeynkariya bikarhêner têne pêşve xistin. Pêvekên GUI pir mîna pêvekan in, lê berevajî pêvekan, ew bang li fonksiyonên Neovim dikin, dema ku pêvek ji hundurê Neovim têne gazî kirin.

Hin guhertinên di guhertoya nû de:

  • В vim-скрипты добавлена поддержка локальных переменных, область видимости для которых ограничена только текущим скриптом.
  • Значительно улучшена поддержка языка Lua для разработки плагинов и управления конфигурацией. В vim-скриптах добавлена возможность вызова Lua-функций как методов через указание префикса v:lua (например, «arg1->v:lua.somemod.func(arg2)»).
  • Расширены возможности встроенного LSP-клиента (Language Server Protocol), который можно использовать для выноса логики анализа и автодополнения кода на внешние серверы. Применение LSP позволяет использовать более 150 готовых обработчиков для различных языков программирования, подготовленных для редактора кода Visual Studio Code.
  • Улучшены средства диагностики проблем в коде. Добавлена возможность вывода текста диагностических сообщений и плавающих окон с кодом, связанным с подобными сообщениями. Обеспечена обработка диагностических сообщений, передаваемых LSP-сервером.
  • Добавлена поддержка виртуальных строк, которые могут использоваться, например, для вывода блоков со служебной информацией.
  • Внесены различные оптимизации производительности, например, задействована хэш таблица для подсвечиваемых имён групп.
  • Прекращена поддержка Windows 7 и 32-разрядных сборок для Windows.

Source: opennet.ru

Add a comment