Available ang Neovim 0.5, isang modernized na bersyon ng Vim editor

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

Ang isa sa mga problema sa Vim na nag-udyok sa paglikha ng Neovim ay ang namamaga, monolithic code base nito, na binubuo ng higit sa 300 libong linya ng C (C89) code. Iilan lamang sa mga tao ang nakakaunawa sa lahat ng mga nuances ng Vim codebase, at lahat ng mga pagbabago ay kinokontrol ng isang maintainer, na nagpapahirap sa pagpapanatili at pagpapabuti ng editor. Sa halip na ang code na binuo sa Vim core upang suportahan ang GUI, ang Neovim ay nagmumungkahi ng paggamit ng isang unibersal na layer na nagbibigay-daan sa iyo upang lumikha ng mga interface gamit ang iba't ibang mga toolkit.

Ang mga Plugin para sa Neovim ay inilunsad bilang hiwalay na mga proseso, para sa pakikipag-ugnayan kung saan ginagamit ang format ng MessagePack. Ang pakikipag-ugnayan sa mga plugin ay isinasagawa nang asynchronous, nang hindi hinaharangan ang mga pangunahing bahagi ng editor. Upang ma-access ang plugin, maaaring gumamit ng TCP socket, i.e. ang plugin ay maaaring patakbuhin sa isang panlabas na sistema. Kasabay nito, ang Neovim ay nananatiling backward compatible sa Vim, patuloy na sumusuporta sa Vimscript (Inaalok ang Lua bilang alternatibo) at sumusuporta sa mga koneksyon para sa karamihan ng mga karaniwang Vim plugin. Maaaring gamitin ang mga advanced na feature ng Neovim sa mga plugin na binuo gamit ang mga API na partikular sa Neovim.

Sa kasalukuyan, humigit-kumulang 130 partikular na plugin ang naihanda na, magagamit ang mga binding para sa paglikha ng mga plugin at pagpapatupad ng mga interface gamit ang iba't ibang mga programming language (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) at mga frameworks (Qt, ncurses, Node .js, Electron, GTK). Maraming mga pagpipilian sa interface ng gumagamit ay binuo. Ang mga add-on ng GUI ay halos katulad ng mga plugin, ngunit hindi tulad ng mga plugin, sinimulan nila ang mga tawag sa mga function ng Neovim, habang ang mga plugin ay tinatawag mula sa loob ng Neovim.

Ilan sa mga pagbabago sa bagong bersyon:

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

Pinagmulan: opennet.ru

Magdagdag ng komento