I-Neovim 0.4 iyafumaneka, inguqulelo yale mihla yomhleli weVim

ipapashiwe ukukhulula I-Neovim 0.4, отвСтвлСния ΠΎΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Vim, сфокусированного Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΠΈ ΠΈ гибкости. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° usasazeko ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0, Π° базовая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Vim.

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

Enye yeengxaki zeVim eziye zabangela ukudalwa kwe-Neovim yi-bloated, i-monolithic codebase engaphezulu kwemigca ye-300 yekhowudi ye-C (C89). Bambalwa abantu abaqonda zonke iinqununu zekhowudi yeVim, kwaye zonke iinguqu zilawulwa ngumlondolozi omnye, okwenza kube nzima ukugcina nokusebenza ekuphuculeni umhleli. Endaweni yekhowudi eyakhelwe kwi-Vim core ukuxhasa i-GUI, i-Neovim iphakamisa ukusebenzisa umaleko wendalo yonke okuvumela ukuba wenze ujongano usebenzisa izixhobo ezahlukeneyo zezixhobo.

Iiplagi zeNeovim ziqaliswa njengeenkqubo ezahlukeneyo, zokunxibelelana apho kusetyenziswa ifomati yeMessagePack. Ukusebenzisana kunye ne-plug-ins kwenziwa kwimodi esynchronous, ngaphandle kokuthintela amacandelo asisiseko somhleli. I-socket ye-TCP ingasetyenziselwa ukufikelela kwiplagin, okt. iplagin ingasebenza kwindlela yangaphandle. Kwangaxeshanye, iNeovim ihlala ngasemva ihambelana neVim, iyaqhubeka nokuxhasa iVimscript (iLua inikezelwa njengenye indlela) kwaye ixhasa uqhagamshelo lweeplagi zeVim eziqhelekileyo. Iimpawu eziphambili zeNeovim zinokusetyenziswa kwiiplagi ezakhiwe kusetyenziswa iNeovim-specific API.

Π’ настоящСС врСмя ΡƒΠΆΠ΅ ilungisiwe ΠΎΠΊΠΎΠ»ΠΎ 80 спСцифичных ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², доступны Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ для создания ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ интСрфСйсов с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков программирования (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² (Qt5, ncurses, Node.js, Electron, GTK+). РазвиваСтся нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. GUI-надстройки Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, Π½ΠΎ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΎΠ½ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Neovim, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ· Neovim.

НСкоторыС ΠΈΠ· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² inguqulelo entsha:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° большая порция Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ API ΠΈ событий интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Nvim-Lua для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π½Π° языкС Lua.
  • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° экранС Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ строк, Π° Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… символов.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΊΠΎΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ мСстС, ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡΡ‚ΡŒΡΡ, ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ рСдактирования, Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Multigrid.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция β€˜pumblend’ для ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… мСню.

umthombo: opennet.ru

Yongeza izimvo