Кстати, недавно была новость о том, что neovim зарелизился в версию 0.5. В общем, я тут потратил время, и переписал свои конфиги на Lua, обновил некоторые плагины на Lua-версии и начал пользоваться родным lsp.
Это того стоит. Ну то есть я натурально вижу-ощущаю разницу по сравнению с тем, что neovim предлагал до этой версии + относительно текущего состояния обычного vim'а. Оно все работает быстрее, с меньшим количеством багов. Подсветка на treesitter - няшка. Скажем, если есть конструкция self.storage.get()
, то и self
будет подсвечен как self, storage
- как поле объекта, а get
- как метод объекта. Раньше, в общем, это все попадало под одну и ту же группу
Еще можно выкидывать кучу плагинов по текстовым объектам. treesitter почти из коробки дает такие объекты, как классы, функции и даже параметры! (я реально выкинул `welle/targets.vim`)
Ну и да, с точки зрения расширяемости, Lua - это, конечно, на порядок лучше Vimscript'а. Сам язык тоже странный (такой маленький типа-джаваскрипт), но точно лучше того, что было раньше.
Родной LSP работает существенно лучше того, чего можно добиться плагинами типа coc.nvim или vim-lsp. Прямо берем и нафиг все выкидываем. Там еще есть недоработки, типа отсутствия менеджмента этих LSP (установка-обновление), но это решается парой плагинов.
В общем, по ощущениям, это такой водораздел, когда neovim и vim окончательно разойдутся. Народ с остервенением пишет плагины именно на Lua, а старому виму ничего не достается. Это очень похоже на то, как сосуществуют Elixir и Erlang. В принципе, одно и то же с почти одними и теми же людьми, но Эрланг - пенсия, а Эликсир кипит и стабильно монотонно хорошеет.
Если вы пользуетесь Vim, реально подумайте о переходе.
Если вы не пользуетесь Vim'ом, то и не надо: слишком высокий порог входа, слишком высокие требования к самодисциплине, прежде чем начнете получать какую-либо отдачу. Я серьезно. Считайте, это все нужно людям, которые зачем-то когда-то реально инвестировали силы в текстовый редактор.