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

Neovim 0.6.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.

E puer vun den Ännerungen an der neier Versioun:

  • Ënnerstëtzung fir lokal Variablen gouf zu vim Skripte bäigefüügt, den Ëmfang vun deenen nëmme vum aktuellen Skript limitéiert ass.
  • Bedeitend verbessert Lua Sprooch Ënnerstëtzung fir Plugin Entwécklung a Konfiguratioun Gestioun. A vim Scripten ass d'Fäegkeet Lua Funktiounen als Methoden ze nennen bäigefüügt andeems de v: lua Präfix spezifizéiert gëtt (zum Beispill "arg1->v: lua.somemod.func(arg2)").
  • 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. D'Benotzung vum LSP erlaabt Iech méi wéi 150 fäerdeg Handlere fir verschidde Programméierungssprooche virbereet fir de Visual Studio Code Editor ze benotzen.
  • Verbessert Tools fir Probleemer am Code ze diagnostizéieren. D'Fähigkeit bäigefüügt fir den Text vun diagnostesche Messagen a schwiewend Fënstere mat Code mat esou Messagen ze weisen. Veraarbechtung vun diagnostesche Messagen, déi vum LSP Server iwwerdroe ginn, gëtt zur Verfügung gestallt.
  • Zousätzlech Ënnerstëtzung fir virtuelle Saiten, déi benotzt kënne ginn, zum Beispill, Blocks mat Serviceinformatioun ze weisen.
  • Verschidde Leeschtungsoptimiséierunge goufe gemaach, zum Beispill ass en Hash-Tabelle fir markéiert Gruppennimm aktivéiert.
  • Ënnerstëtzung fir Windows 7 an 32-Bit Builds vu Windows gouf gestoppt.

Source: opennet.ru

Setzt e Commentaire