Verëffentlechung vum Neovim 0.7.0, eng moderniséiert Versioun vum Vim Editor

Neovim 0.7.0 gouf verëffentlecht, eng Gabel vum Vim Editor konzentréiert sech op d'Erhéijung vun der Extensibilitéit a Flexibilitéit. De Projet huet d'Vim Code Basis fir méi wéi siwe Joer iwwerschafft, als Resultat vun deenen Ännerungen gemaach ginn, déi de Code Maintenance vereinfachen, e Mëttel ubidden fir d'Aarbecht tëscht verschiddenen Ënnerhalter ze trennen, d'Interface vum Basisdeel ze trennen (d'Interface kann geännert ouni d'Intern ze beréieren) an implementéiert eng nei erweiterbar Architektur op baséiert op Plugins. Déi ursprénglech Entwécklunge vum Projet ginn ënner der Apache 2.0 Lizenz verdeelt, an de Basisdeel gëtt ënner der Vim Lizenz verdeelt. Fäerdeg Versammlungen si fir Linux (appimage), Windows a macOS virbereet.

Ee vun de Probleemer mat Vim, déi d'Schafung vum Neovim gefuerdert hunn, war seng bloated, monolithesch Codebasis, besteet aus méi wéi 300 Tausend Zeilen vum C (C89) Code. Nëmmen e puer Leit verstinn all d'Nuancen vun der Vim Codebase, an all Ännerungen ginn vun engem Instander kontrolléiert, wat et schwéier mécht den Editor z'erhalen an ze verbesseren. Amplaz vum Code an de Vim Kär gebaut fir de GUI z'ënnerstëtzen, proposéiert Neovim eng universell Schicht ze benotzen déi Iech erlaabt Interfaces mat verschiddenen Toolkits ze kreéieren.

Plugins fir Neovim ginn als separat Prozesser gestart, fir Interaktioun mat deem de MessagePack Format benotzt gëtt. Interaktioun mat Plugins gëtt asynchron duerchgefouert, ouni d'Basiskomponenten vum Editor ze blockéieren. Fir Zougang zum Plugin ze kréien, kann en TCP Socket benotzt ginn, d.h. de Plugin kann op engem externen System lafen. Zur selwechter Zäit bleift Neovim Réckkompatibel mat Vim, ënnerstëtzt weider Vimscript (Lua gëtt als Alternativ ugebueden) an ënnerstëtzt Verbindunge fir déi meescht Standard Vim Plugins. Dem Neovim seng fortgeschratt Feature kënne benotzt ginn a Plugins gebaut mat Neovim-spezifesche APIs.

De Moment sinn ongeféier 130 spezifesch Plugins scho virbereet, Bindunge si verfügbar fir Plugins ze kreéieren an Interfaces ëmzesetzen mat verschiddene Programméierungssproochen (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) a Kaderen (Qt, ncurses, Node .js, Electron, GTK). Verschidde User Interface Optiounen ginn entwéckelt. GUI Add-ons si vill wéi Plugins, awer am Géigesaz zu Plugins, initiéieren se Uruff un Neovim Funktiounen, während Plugins vu bannen Neovim genannt ginn.

Déi nei Versioun bitt initial Ënnerstëtzung fir Fernaarbecht, wat Iech erlaabt Neovim um Server ze lafen a mat engem Client System mat engem separaten ui_client ze verbannen. Aner Ännerungen enthalen: Ënnerstëtzung fir Python 2 gouf gestoppt, d'Benotzung vu Lua Funktiounen an der Tastatur ass erlaabt, nei Kommandoen goufen der API bäigefüügt, d'Fäegkeet fir d'Lua Sprooch ze benotzen fir Plugins z'entwéckelen an d'Konfiguratiounsmanagement ass wesentlech erweidert, Tools fir Probleemer am Code ze diagnostizéieren goufen verbessert, Ënnerstëtzung fir d'global Statusbar gouf bäigefüügt, Leeschtungsoptimiséierunge goufen duerchgefouert. D'Kapazitéite vum agebaute LSP Client (Language Server Protocol) goufen erweidert, déi benotzt kënne fir d'Analyselogik an d'Code-Fäerdegstellung op extern Serveren ze transferéieren.

Source: opennet.ru

Setzt e Commentaire