Neovim 0.5, in modernisearre ferzje fan 'e Vim-bewurker, is beskikber

ПослС ΠΏΠΎΡ‡Ρ‚ΠΈ Π΄Π²ΡƒΡ… Π»Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· Neovim 0.5, отвСтвлСния ΠΎΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Vim, сфокусированного Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΠΈ ΠΈ гибкости. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ сСми Π»Π΅Ρ‚ проводится ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Vim, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вносятся измСнСния, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠ΅ сопровоТдСниС ΠΊΠΎΠ΄Π°, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ срСдства раздСлСния Ρ‚Ρ€ΡƒΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими мэйнтСйнСрами, ΠΎΡ‚Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ интСрфСйс ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠΉ части (интСрфСйс ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ трогая внутрСнности) ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π½ΠΎΠ²ΡƒΡŽ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π½Π° основС ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0, Π° базовая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Vim.

Ien fan 'e problemen mei Vim dy't de skepping fan Neovim oanmoedige wie syn opblaasde, monolityske koadebasis, besteande ΓΊt mear as 300 tΓ»zen rigels fan C (C89) koade. Allinich in pear minsken begripe alle nuΓ’nses fan 'e Vim-koadebase, en alle wizigingen wurde regele troch ien Γ»nderhΓ’lder, wat it dreech makket om de bewurker te behΓ’lden en te ferbetterjen. Ynstee fan de koade ynboud yn 'e Vim-kearn om de GUI te stypjen, stelt Neovim foar om in universele laach te brΓ»ken wΓͺrmei jo ynterfaces kinne meitsje mei ferskate toolkits.

Plugins foar Neovim wurde lansearre as aparte prosessen, foar ynteraksje wΓͺrmei it MessagePack-formaat wurdt brΓ»kt. Ynteraksje mei plugins wurdt asynchronysk ΓΊtfierd, sΓ»nder de basiskomponinten fan 'e bewurker te blokkearjen. Om tagong te krijen ta de plugin kin in TCP-socket brΓ»kt wurde, d.w.s. de plugin kin wurde ΓΊtfierd op in ekstern systeem. Tagelyk bliuwt Neovim efterΓΊt kompatibel mei Vim, bliuwt Vimscript stypje (Lua wurdt oanbean as alternatyf) en stipet ferbiningen foar de measte standert Vim-plugins. De avansearre funksjes fan Neovim kinne brΓ»kt wurde yn plugins boud mei Neovim-spesifike API's.

Op it stuit binne sawat 130 spesifike plugins al taret, bindingen binne beskikber foar it meitsjen fan plugins en ymplemintaasje fan ynterfaces mei ferskate programmeartalen (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) en kaders (Qt, ncurses, Node .js, Electron, GTK). Ferskate opsjes foar brΓ»kersynterface wurde Γ»ntwikkele. GUI-tafoegings binne folle as plugins, mar yn tsjinstelling ta plugins, begjinne se oproppen nei Neovim-funksjes, wylst plugins fanΓΊt Neovim wurde neamd.

НСкоторыС ΠΈΠ· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ встроСнный LSP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (Language Server Protocol) Π½Π° языкС Lua, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ внСшним сСрвисам для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ автодополнСния ΠΊΠΎΠ΄Π°.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ API для управлСния ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² выдСлСния.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ API для использования Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π°ΠΉΡ‚ΠΎΠ².
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Lua, ΠΊΠ°ΠΊ языка для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈ управлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π²ΠΈΠΆΠΊΠ° Ρ€Π°Π·Π±ΠΎΡ€Π° синтаксиса tree-sitter.

Boarne: opennet.ru

Add a comment