At that point you might as well use QT Creator.
At that point you might as well use QT Creator.
There are a ton of people that use Vim because it's productive, not because of how "lightweight" it is. I see no reason to shame people if they choose to use "heavy" plugins to achieve whatever functionality they want.
because vim wasn't exactly built with these kinds of features in mind and it shows when you start to throw a lot of IDE features into vim. For example switching to very large text files with vanilla vim, doing some search and replace is no problem, it's super fast.
Doing that with the wrong plugin on that does some CPU heavy stuff can very quickly make vim unresponsive.
IDEs are already built with a rich feature set in mind, so you can expect performance to be relatively stable. Vim or Emacs with the entire kitchen sink thrown in tends to be a little bit dicy
I disagree. Both Vim and Neovim are under active development, and have acquired many features to support IDE functionality.
> For example switching to very large text files with vanilla vim, doing some search and replace is no problem, it's super fast.
This has improved a lot in the last few years thanks to the async APIs.
EDIT: Also, the actual language server (clangd, ccls, etc) which is compiling/reindexing your project behind the scenes is generally the most resource intensive part of the whole setup - so even CoC with node is not a bad choice.
I don't understand why coc.vim is so popular, when Ale is so performant and "debuggable" (i.e. produces useful performance traces).
[long-time ale user here, I don't use clangd but I do use python-language-server, which is similar]
Is it that coc.vim doesn't make you install the binaries of the tools (i.e. go-pls, python-language-server, clangd)? If so, that would be enough to explain the popularity to me.
IMO, one could make the argument that it's somewhat antithetical to vim-culture, to not understand the non-vim binaries your editor is executing.
I use Vim not for philosophical or cultural reasons but because I enjoy the UX.
CoC's autocompletion is much more advanced than Ale. I used Ale for years.
I thought that both are pass-throughs to other completion engines, so isn't this a moot comparison? (maybe coc integrates the completion engine, but it doesn't implement a new one, right?).
I use deoplete, but I'm not married to it (it's kind of slow when you have a big file).
let g:deoplete#enable_at_startup = 1
call deoplete#custom#option({
\'auto_complete_delay': 1000,
\'sources': {
\ '_': ['ale', 'buffer'],
\ 'py': ['ale'],
\}
\})
If so, isn't the completion experience is strictly a function of the completion engine you're passing coc/ale into (ux), and the binaries that you're passing into coc/ale (completion options)?It is possible that coc.vim can do better. But I can't imagine how much better it should have be.
this has been my experience too.
I was editing some prolog the other day, `:ALEInfo` recommended swipl. worked like a charm!
the linters covered are quite incredible: https://github.com/dense-analysis/ale/tree/master/ale_linter....
And if you read each integration file, they are quite small and comprehensible. I've never needed to add one myself, but I feel like I could if I wanted to.
Do agree that coc is probably the least 'vim-culture'-ey part of such a setup, but hey it does good things. :) I don't think you need to justify using Ale so hard and put coc down, could just use whichever you prefer personally.
I'm trying to see if I'm missing something big/obvious, since coc.vim has been so popular recently.
coc.nvim has pretty much worked pretty well out of the box for many languages, and it works for me on macOS, Linux and Windows.
edit/ Of course, Google was able to pop it out after I submit this comment... For anyone else who may be curious about how this works: https://neovim.io/doc/user/lsp.html
Also, qtcreator is pretty darn good for Rust too
vim is lighter than qt creator is lighter than node.js + vim
Besides adding a Node dependency, Coc extensions are basically ported VSCode extensions with some changes necessary to make them work with Coc. This means that for every single extension you want to port to Coc, someone has to maintain a Coc fork and keep up with the upstream VSCode extension.
Personally, I just don't feel that this is sustainable.