Neovim 0.5 ื–ืžื™ืŸ, ื’ืจืกื” ืžื•ื“ืจื ื™ืช ืฉืœ ืขื•ืจืš Vim

ืœืื—ืจ ื›ืžืขื˜ ืฉื ืชื™ื™ื ืฉืœ ืคื™ืชื•ื—, ื™ืฆื Neovim 0.5, ืžื–ืœื’ ืฉืœ ืขื•ืจืš Vim ืฉื”ืชืžืงื“ ื‘ื”ื’ื“ืœืช ื”ื”ืจื—ื‘ื” ื•ื”ื’ืžื™ืฉื•ืช. ื”ืคืจื•ื™ืงื˜ ืžืขื‘ื“ ืžื—ื“ืฉ ืืช ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ Vim ื›ื‘ืจ ื™ื•ืชืจ ืžืฉื‘ืข ืฉื ื™ื, ื•ื›ืชื•ืฆืื” ืžื›ืš ืžืชื‘ืฆืขื™ื ืฉื™ื ื•ื™ื™ื ื”ืžืคืฉื˜ื™ื ืืช ืชื—ื–ื•ืงืช ื”ืงื•ื“, ืžืกืคืงื™ื ืืžืฆืขื™ ืœื—ืœื•ืงืช ืขื‘ื•ื“ื” ื‘ื™ืŸ ืžืกืคืจ ืžืชื—ื–ืงื™ื, ืžืคืจื™ื“ื™ื ื‘ื™ืŸ ื”ืžืžืฉืง ืœื—ืœืง ื”ื‘ืกื™ืก (ื”ืžืžืฉืง ื™ื›ื•ืœ ืœื”ื™ื•ืช ื”ืฉืชื ื” ืžื‘ืœื™ ืœื’ืขืช ื‘ื—ืœืง ื”ืคื ื™ืžื™) ื•ื”ื˜ืžื™ืข ืืจื›ื™ื˜ืงื˜ื•ืจื” ื—ื“ืฉื” ื”ื ื™ืชื ืช ืœื”ืจื—ื‘ื” ื”ืžื‘ื•ืกืกืช ืขืœ ืชื•ืกืคื™ื. ื”ืคื™ืชื•ื—ื™ื ื”ืžืงื•ืจื™ื™ื ืฉืœ ื”ืคืจื•ื™ืงื˜ ืžื•ืคืฆื™ื ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0, ื•ื”ื—ืœืง ื”ื‘ืกื™ืกื™ ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ Vim.

ืื—ืช ื”ื‘ืขื™ื•ืช ืขื Vim ืฉื”ื ื™ืขื” ืืช ื™ืฆื™ืจืช Neovim ื”ื™ื™ืชื” ื‘ืกื™ืก ื”ืงื•ื“ ื”ืžื ื•ืคื— ื•ื”ืžื•ื ื•ืœื™ื˜ื™ ืฉืœื•, ื”ืžื•ืจื›ื‘ ืžื™ื•ืชืจ ืž-300 ืืœืฃ ืฉื•ืจื•ืช ืฉืœ ืงื•ื“ C (C89). ืจืง ืื ืฉื™ื ืžืขื˜ื™ื ืžื‘ื™ื ื™ื ืืช ื›ืœ ื”ื ื™ื•ืื ืกื™ื ืฉืœ ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ Vim, ื•ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ื ืฉืœื˜ื™ื ืขืœ ื™ื“ื™ ืžืชื—ื–ืง ืื—ื“, ืžื” ืฉืžืงืฉื” ืขืœ ืชื—ื–ื•ืงื” ื•ืฉื™ืคื•ืจ ืฉืœ ื”ืขื•ืจืš. ื‘ืžืงื•ื ื”ืงื•ื“ ื”ืžื•ื‘ื ื” ื‘ืœื™ื‘ืช Vim ืœืชืžื™ื›ื” ื‘-GUI, Neovim ืžืฆื™ืขื” ืœื”ืฉืชืžืฉ ื‘ืฉื›ื‘ื” ืื•ื ื™ื‘ืจืกืœื™ืช ื”ืžืืคืฉืจืช ืœื™ืฆื•ืจ ืžืžืฉืงื™ื ื‘ืืžืฆืขื•ืช ืขืจื›ื•ืช ื›ืœื™ื ืฉื•ื ื•ืช.

ืชื•ืกืคื™ื ืขื‘ื•ืจ Neovim ืžื•ืฉืงื™ื ื›ืชื”ืœื™ื›ื™ื ื ืคืจื“ื™ื, ืœืื™ื ื˜ืจืืงืฆื™ื” ืื™ืชื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืคื•ืจืžื˜ MessagePack. ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืชื•ืกืคื™ื ืžืชื‘ืฆืขืช ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™, ืžื‘ืœื™ ืœื—ืกื•ื ืืช ื”ืจื›ื™ื‘ื™ื ื”ื‘ืกื™ืกื™ื™ื ืฉืœ ื”ืขื•ืจืš. ื›ื“ื™ ืœื’ืฉืช ืœืชื•ืกืฃ, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืฉืงืข TCP, ื›ืœื•ืžืจ. ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืืช ื”ืชื•ืกืฃ ืขืœ ืžืขืจื›ืช ื—ื™ืฆื•ื ื™ืช. ื‘ืžืงื‘ื™ืœ, Neovim ื ืฉืืจืช ืชื•ืืžืช ืœืื—ื•ืจ ืขื Vim, ืžืžืฉื™ื›ื” ืœืชืžื•ืš ื‘-Vimscript (Lua ืžื•ืฆืขืช ื›ื—ืœื•ืคื”) ื•ืชื•ืžื›ืช ื‘ื—ื™ื‘ื•ืจื™ื ืœืจื•ื‘ ื”ืชื•ืกืคื™ื ื”ืกื˜ื ื“ืจื˜ื™ื™ื ืฉืœ Vim. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืชื›ื•ื ื•ืช ื”ืžืชืงื“ืžื•ืช ืฉืœ Neovim ื‘ืชื•ืกืคื™ื ืฉื ื‘ื ื• ื‘ืืžืฆืขื•ืช ืžืžืฉืงื™ API ืกืคืฆื™ืคื™ื™ื ืœ- Neovim.

ื ื›ื•ืŸ ืœืขื›ืฉื™ื•, ื›ื‘ืจ ื”ื•ื›ื ื• ื›-130 ืชื•ืกืคื™ื ืกืคืฆื™ืคื™ื™ื, ื›ืจื™ื›ื•ืช ื–ืžื™ื ื•ืช ืœื™ืฆื™ืจืช ืชื•ืกืคื™ื ื•ื”ื˜ืžืขืช ืžืžืฉืงื™ื ื‘ืืžืฆืขื•ืช ืฉืคื•ืช ืชื›ื ื•ืช ืฉื•ื ื•ืช (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ื•ืžืกื’ืจื•ืช (Qt, ncurses, Node .js, Electron, GTK). ืžืคืชื—ื™ื ืžืกืคืจ ืืคืฉืจื•ื™ื•ืช ืžืžืฉืง ืžืฉืชืžืฉ. ืชื•ืกืคื•ืช GUI ื“ื•ืžื•ืช ืžืื•ื“ ืœืชื•ืกืคื™ื, ืื‘ืœ ื‘ื ื™ื’ื•ื“ ืœืชื•ืกืคื™ื, ื”ื ื™ื•ื–ืžื™ื ืงืจื™ืื•ืช ืœืคื•ื ืงืฆื™ื•ืช ืฉืœ Neovim, ื‘ืขื•ื“ ืฉืชื•ืกืคื™ื ื ืงืจืื™ื ืžืชื•ืš Neovim.

ื—ืœืง ืžื”ืฉื™ื ื•ื™ื™ื ื‘ื’ืจืกื” ื”ื—ื“ืฉื”:

  • ื ื•ืกืฃ ืœืงื•ื— LSP ืžื•ื‘ื ื” (Language Server Protocol) ื‘-Lua, ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื”ืชื—ื‘ืจ ืœืฉื™ืจื•ืชื™ื ื—ื™ืฆื•ื ื™ื™ื ืœืฆื•ืจืš ื ื™ืชื•ื— ื•ื”ืฉืœืžืช ืงื•ื“.
  • ื”ื•ืกืฃ API ื›ื“ื™ ืœืฉืœื•ื˜ ื‘ืขื™ืฆื•ื‘ ืžืื’ืจื™ ื”ืงืฆืื”.
  • ื”ื•ืกื™ืฃ API ืœืฉื™ืžื•ืฉ ื‘ืชื’ื™ื ืžื•ืจื—ื‘ื™ื ื›ื“ื™ ืœืขืงื•ื‘ ืื—ืจ ืฉื™ื ื•ื™ื™ื ื‘ืจืžืช ื”ื‘ืชื™ื.
  • ืชืžื™ื›ื” ืžื•ืจื—ื‘ืช ื‘-Lua ื›ืฉืคื” ืœืคื™ืชื•ื— ืชื•ืกืคื™ื ื•ื ื™ื”ื•ืœ ืชืฆื•ืจื”.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื ื™ืกื™ื•ื ื™ืช ืขื‘ื•ืจ ืžื ื•ืข ื ื™ืชื•ื— ื”ืขืฅ ืกื™ื˜ืจ.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”