Neovim 0.7.0, cabang tina éditor Vim anu fokus kana ningkatkeun éksténsibilitas sareng kalenturan, parantos dirilis. Proyék ieu parantos ngolah deui basis kode Vim salami langkung ti tujuh taun, ngenalkeun parobihan anu ngagampangkeun pangropéa kode, nyayogikeun alat pikeun ngabagi padamelan antara sababaraha pangurus, misahkeun antarmuka tina inti (antarmuka tiasa dirobih tanpa noel internal), sareng nerapkeun arsitéktur énggal anu tiasa dilegaan, dumasar kana plugin. Karya asli proyék ieu dilisensikeun dina lisénsi Apache 2.0, sareng bagian inti dilisensikeun dina lisénsi Vim. Wangunan anu réngsé sayogi kanggo Linux (gambar aplikasi), Windows и 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 ieu nawiskeun dukungan awal pikeun damel jarak jauh, ngamungkinkeun anjeun ngajalankeun Neovim dina palayan sareng nyambung ka dinya ti sistem klien nganggo ui_client anu misah. Parobihan sanésna kalebet: dukungan Python 2 parantos dihentikeun, panggunaan fungsi Lua dina keymaps parantos diidinan, paréntah énggal parantos ditambihkeun kana API, kamampuan ngagunakeun Lua pikeun pamekaran plugin sareng manajemén konfigurasi parantos dilegaan sacara signifikan, alat diagnostik kode parantos ditingkatkeun, dukungan pikeun bilah status global parantos ditambihkeun, sareng optimasi kinerja parantos dilaksanakeun. Kamampuan klien LSP (Language Server Protocol) bawaan parantos dilegaan, ngamungkinkeun pikeun éksternalisasi analisis kode sareng logika autocompletion. server.
sumber: opennet.ru
