Neovim 0.5 yog muaj, niaj hnub version ntawm Vim editor

Tom qab yuav luag ob xyoos ntawm txoj kev loj hlob, Neovim 0.5 tau raug tso tawm, ib rab diav rawg ntawm Vim editor tsom mus rau kev nthuav dav ntxiv thiab yoog raws. Lub phiaj xwm tau rov ua dua Vim li cas code puag rau ntau tshaj xya xyoo, vim tias qhov kev hloov pauv tau ua kom yooj yim rau kev tswj hwm txoj cai, muab kev faib ua haujlwm ntawm ob peb tus neeg saib xyuas, cais qhov cuam tshuam los ntawm lub hauv paus ib feem (lub interface tuaj yeem ua tau. hloov tsis tau kov lub internals) thiab siv ib tug tshiab extensible architecture raws li plugins. Thawj qhov kev txhim kho ntawm txoj haujlwm tau muab faib raws li Apache 2.0 daim ntawv tso cai, thiab qhov tseem ceeb yog faib raws li Daim ntawv tso cai Vim.

Ib qho ntawm cov teeb meem nrog Vim uas tau ua rau kev tsim ntawm Neovim yog nws bloated, monolithic code puag, muaj ntau tshaj 300 txhiab kab ntawm C (C89) code. Tsuas yog ob peb tus neeg nkag siab tag nrho cov nuances ntawm Vim codebase, thiab tag nrho cov kev hloov pauv yog tswj los ntawm ib tus neeg saib xyuas, uas ua rau nws nyuaj rau kev tswj hwm thiab txhim kho cov neeg kho. Hloov chaw ntawm txoj cai tsim rau hauv Vim core los txhawb GUI, Neovim tawm tswv yim siv cov txheej txheem thoob ntiaj teb uas tso cai rau koj los tsim kev sib tshuam siv ntau yam khoom siv.

Plugins rau Neovim tau pib ua cov txheej txheem cais, rau kev sib cuam tshuam uas siv MessagePack hom. Kev sib cuam tshuam nrog plugins yog ua tiav asynchronously, tsis thaiv cov ntsiab lus ntawm tus editor. Txhawm rau nkag mus rau lub plugin, lub qhov (socket) TCP tuaj yeem siv tau, piv txwv li. lub plugin tuaj yeem khiav ntawm qhov system sab nraud. Nyob rau tib lub sijhawm, Neovim tseem rov qab sib haum nrog Vim, txuas ntxiv txhawb Vimscript (Lua yog muab los ua lwm txoj hauv kev) thiab txhawb kev sib txuas rau feem ntau tus qauv Vim plugins. Neovim cov yam ntxwv siab heev tuaj yeem siv tau hauv plugins tsim siv Neovim-specific APIs.

Tam sim no, txog 130 qhov tshwj xeeb plugins twb tau npaj lawm, kev khi muaj nyob rau hauv kev tsim plugins thiab kev siv interfaces siv ntau hom lus programming ​​(C ++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) thiab lub moj khaum (Qt, ncurses, Node .js, Electron, GTK). Muaj ob peb tus neeg siv interface xaiv tau raug tsim. GUI add-ons zoo li plugins, tab sis tsis zoo li plugins, lawv pib hu rau Neovim ua haujlwm, thaum plugins raug hu los ntawm hauv Neovim.

Qee qhov kev hloov pauv hauv qhov tshiab version:

  • Ntxiv cov neeg siv LSP built-in (Language Server Protocol) hauv Lua, uas tuaj yeem siv los txuas rau cov kev pabcuam sab nraud rau kev tshuaj xyuas thiab ua tiav cov lej.
  • Ntxiv ib qho API los tswj tus tsim ntawm kev faib cov buffers.
  • Ntxiv API los siv cov cim txuas ntxiv los taug qab cov kev hloov pauv ntawm qib byte.
  • Nthuav kev txhawb nqa rau Lua ua lus rau kev txhim kho plugin thiab kev tswj hwm kev teeb tsa.
  • Ntxiv kev sim txhawb nqa rau tsob ntoo-sitter parsing cav.

Tau qhov twg los: opennet.ru

Ntxiv ib saib