Neovim 0.5, เบชเบฐเบšเบฑเบšเบ›เบฑเบšเบ›เบธเบ‡เบ‚เบญเบ‡เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™ Vim, เปเบกเปˆเบ™เบกเบตเบขเบนเปˆ

เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบเบทเบญเบšเบชเบญเบ‡เบ›เบตเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, Neovim 0.5 เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เบชเป‰เบญเบกเบ‚เบญเบ‡เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™ Vim เป„เบ”เป‰เบชเบธเบกเปƒเบชเปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ—เบฐเบงเบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเปเบฅเบฐเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™. เป‚เบ„เบ‡เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰ reworking เบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ” Vim เบชเปเบฒเบฅเบฑเบšเบซเบผเบฒเบเบเปˆเบงเบฒเป€เบˆเบฑเบ”เบ›เบต, เป€เบ›เบฑเบ™เบœเบปเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบฎเบฑเบเบชเบฒเบฅเบฐเบซเบฑเบ”เบ‡เปˆเบฒเบ, เบชเบฐเบซเบ™เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปเบšเปˆเบ‡เบญเบญเบเปเบฎเบ‡เบ‡เบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบœเบนเป‰เบฎเบฑเบเบชเบฒเบซเบผเบฒเบ, เปเบเบเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบˆเบฒเบเบชเปˆเบงเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™ (เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™. เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเปเบฒเบœเบฑเบ”เบเบฑเบšเบžเบฒเบเปƒเบ™) เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเปƒเบซเบกเปˆเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ plugins. เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Apache 2.0, เปเบฅเบฐเบชเปˆเบงเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เปเบกเปˆเบ™เปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Vim.

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบšเบฑเบ™เบซเบฒเบเบฑเบš Vim เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡ Neovim เปเบกเปˆเบ™ bloated, เบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ” monolithic, เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบซเบผเบฒเบเบเปˆเบงเบฒ 300 เบžเบฑเบ™เบชเบฒเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” C (C89). เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบชเบฒเบกเบ„เบปเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆ nuances เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡ Vim codebase, เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบœเบนเป‰เบฎเบฑเบเบชเบฒเบซเบ™เบถเปˆเบ‡, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบฎเบฑเบเบชเบฒเปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบซเบผเบฑเบ Vim เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ GUI, Neovim เบชเบฐเป€เบซเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบŠเบฑเป‰เบ™เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป‚เบ”เบเปƒเบŠเป‰เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ•เปˆเบฒเบ‡เป†.

Plugins เบชเปเบฒเบฅเบฑเบš Neovim เบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบงเป€เบ›เบฑเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ—เบตเปˆเบฎเบนเบšเปเบšเบš MessagePack เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฑเบš plugins เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™ asynchronous, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบเบฑเบ”เบญเบปเบ‡เบ›เบฐเบเบญเบšเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™. เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ plugin, เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ TCP socket, i.e. plugin เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบžเบฒเบเบ™เบญเบ. เปƒเบ™เบ‚เบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™, Neovim เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเบ”เป‰เบฒเบ™เบซเบฅเบฑเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบš Vim, เบชเบทเบšเบ•เปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Vimscript (Lua เบชเบฐเป€เบซเบ™เบตเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ) เปเบฅเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเปเบฒเบฅเบฑเบš plugins Vim เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆ. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบ‚เบญเบ‡ Neovim เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เปƒเบ™ plugins เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰ APIs เบชเบฐเป€เบžเบฒเบฐ Neovim.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ›เบฐเบกเบฒเบ™ 130 plugins เบชเบฐเป€เบžเบฒเบฐเป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเปเบฅเป‰เบง, bindings เบกเบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡ plugins เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป‚เบ”เบเปƒเบŠเป‰เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ•เปˆเบฒเบ‡เป† (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) เปเบฅเบฐเบเบญเบš (Qt, ncurses, Node .js, Electron, GTK). เบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฒเบเบญเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ. GUI add-ons เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบš plugins, เปเบ•เปˆเบšเปเปˆเบ„เบทเบเบฑเบš plugins, เบžเบงเบเป€เบ‚เบปเบฒเป€เบฅเบตเปˆเบกเป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ Neovim, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ plugins เบ–เบทเบเป€เบญเบตเป‰เบ™เบˆเบฒเบเบžเบฒเบเปƒเบ™ Neovim.

เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆ:

  • เป€เบžเบตเปˆเบกเบฅเบนเบเบ„เป‰เบฒ LSP เบ—เบตเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™ (Language Server Protocol) เปƒเบ™ Lua, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบžเบฒเบเบ™เบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเปเบฅเบฐเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบฅเบฐเบซเบฑเบ”.
  • เป€เบžเบตเปˆเบก API เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบญเบญเบเปเบšเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™ buffers.
  • เป€เบžเบตเปˆเบก API เป€เบžเบทเปˆเบญเปƒเบŠเป‰เปเบ—เบฑเบเบ‚เบฐเบซเบเบฒเบเป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบฅเบฐเบ”เบฑเบš byte.
  • เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš Lua เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ plugin เปเบฅเบฐเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบงเบดเป€เบ„เบฒเบฐเบ•เบปเป‰เบ™เป„เบกเป‰-sitter.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™