3 ms·
I'll give you my perspective (I'm just an average user): 1) nvim's built in lsp client is entirely in lua and afaik none of it is related to the nvim core. It
by blindseer 5y ago
I'll give you my perspective (I'm just an average user):
1) nvim's built in lsp client is entirely in lua and afaik none of it is related to the nvim core. It is not inconceivable to just move it to a plugin but pretty much everyone will have to depend on it. I think for something as powerful as lsp, it might as well be bundled.
2) the built in lsp client in lua is EXTREMELY customizable and lightweight. In fact, a lot of useful features are enhanced or extended with plugins. Putting the onus on plugin writers to rewrite essentially the same functionality is not ideal.
3) The people that built the lsp client are extremely passionate about it and have contributed to neovim. tjdevries has some youtube clips and twitch stream clips where he talks about why this is a good idea. One thing that was mentioned during the stream today was that luajit and using libuv / LUV makes you feel like why not write an LSP client in nvim lua.
I personally think since it is so lightweight and since it is all in lua, it's awesome to have. And the next big thing can also be added to nvim base in lua without too much "cruft".
- thayne 5y ago> Putting the onus on plugin writers to rewrite essentially the same functionality is not ideal. This goes back to my biggest complaint with the vim ecosystem (and emacs has the same problem): no dependency management. Almost every plugin has to be self contained, because if you depend on another plugin, then you need to rely on you users to manually install that plugin.
- celeritascelery 5y agoEmacs does not have the same problem. When you install a plug-in it will install the dependencies as well. However one thing I wish emacs packages had was the ability to version dependencies. Right now you can get a broken plug-in because the upstream package introduced breaking changes.
- blindseer 5y agoPacker is a plug-in manager for neovim that uses packadd and has support for adding dependencies in the install step.
- thayne 5y agoThat's not quite the same as the package being able to declare its dependencies itself.
- nextaccountic 5y agoEmacs nowadays have package management. And doom emacs is even better in that, because the management is declarative (you have a file with all your packages and it installs them and their dependencies)