Neovim 0.7.0 шығарылымы, Vim редакторының жаңартылған нұсқасы

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 пішімі қолданылатын өзара әрекеттесу үшін бөлек процестер ретінде іске қосылады. Плагиндермен өзара әрекеттесу редактордың негізгі компоненттерін блоктаусыз асинхронды түрде жүзеге асырылады. Плагинге қол жеткізу үшін TCP ұяшығын пайдалануға болады, яғни. плагинді сыртқы жүйеде іске қосуға болады. Сонымен қатар, Neovim Vim-пен кері үйлесімді болып қалады, Vimscript-ті (Lua балама ретінде ұсынылады) қолдауды жалғастырады және көптеген стандартты 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

пікір қалдыру