Release of Neovim 0.7.0, versi dimodernisasi tina redaktur Vim

Neovim 0.7.0 parantos dileupaskeun, garpu pangropéa Vim fokus kana ningkatkeun ekstensibilitas sareng kalenturan. Proyék ieu parantos ngerjakeun deui dasar kode Vim salami langkung ti tujuh taun, salaku hasil tina parobihan anu dilakukeun anu nyederhanakeun pangropéa kode, nyayogikeun cara ngabagi tanaga kerja antara sababaraha pangurus, misahkeun antarmuka tina bagian dasar (antarmuka tiasa janten robah tanpa noél internals) jeung nerapkeun arsitéktur extensible anyar dumasar kana plugins. Pangwangunan asli proyék disebarkeun dina lisénsi Apache 2.0, sareng bagian dasarna disebarkeun dina lisénsi Vim. Majelis anu siap-siap disiapkeun pikeun Linux (appimage), Windows sareng macOS.

Salah sahiji masalah sareng Vim anu nyababkeun nyiptakeun Neovim nyaéta dasar kode monolitik na, anu diwangun ku langkung ti 300 rébu garis kode C (C89). Ngan sababaraha urang ngartos sagala nuansa codebase Vim, sarta sakabeh parobahan dikawasa ku hiji maintainer, nu ngajadikeun hésé pikeun ngajaga tur ningkatkeun redaktur. Gantina kodeu diwangun kana inti Vim pikeun ngarojong GUI, Neovim proposes ngagunakeun lapisan universal nu ngidinan Anjeun pikeun nyieun interfaces ngagunakeun rupa toolkits.

Plugins pikeun Neovim diluncurkeun salaku prosés anu misah, pikeun interaksi anu nganggo format MessagePack. Interaksi sareng plugins dilaksanakeun asynchronously, tanpa blocking komponén dasar éditor. Pikeun ngakses plugin, hiji stop kontak TCP bisa dipaké, i.e. plugin nu bisa dijalankeun dina sistem éksternal. Dina waktos anu sami, Neovim tetep cocog sareng Vim, teras ngadukung Vimscript (Lua ditawarkeun salaku alternatif) sareng ngadukung sambungan pikeun kalolobaan plugins Vim standar. Fitur canggih Neovim tiasa dianggo dina plugins anu diwangun nganggo API khusus Neovim.

Ayeuna, sakitar 130 plugins khusus parantos disiapkeun, beungkeutan sayogi pikeun nyiptakeun plugins sareng ngalaksanakeun antarmuka nganggo sababaraha basa pamrograman (C ++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) sareng kerangka (Qt, ncurses, Node .js, Éléktron, GTK). Sababaraha pilihan panganteur pamaké keur dimekarkeun. GUI tambihan-ons loba kawas plugins, tapi teu kawas plugins, aranjeunna initiate nelepon ka fungsi Neovim, bari plugins disebut ti jeroeun Neovim.

Versi anyar nawarkeun rojongan awal pikeun karya jauh, ngamungkinkeun Anjeun pikeun ngajalankeun Neovim on server tur sambungkeun ka dinya ti sistem klien maké ui_client misah. Parobihan sanésna kalebet: dukungan pikeun Python 2 parantos dileungitkeun, panggunaan fungsi Lua dina keymap parantos diidinan, paréntah énggal parantos ditambah kana API, kamampuan ngagunakeun basa Lua pikeun ngembangkeun plugins sareng manajemén konfigurasi parantos dilegakeun sacara signifikan, alat pikeun diagnosa masalah dina kode geus ningkat, rojongan pikeun status bar global geus ditambahkeun, optimizations kinerja geus dilaksanakeun. Kamampuhan tina klien LSP diwangun-di (Language Server Protocol) geus dimekarkeun, nu bisa dipaké pikeun mindahkeun logika analisis jeung kode parantosan ka server éksternal.

sumber: opennet.ru

Tambahkeun komentar