This is just vim with NerdTree, YouCompleteMe, and a few other plugin, presumably with some extra configuration to make the integration better. It lacks refactoring tools which I think are crucial for an IDE to have otherwise it's just a supped up editor.
That being said very few C++ IDE's have advanced refactoring due to the scourge that is the C Preprocessor. This also why most people, like myself, stick with Vim for C/C++ development.
> That being said very few C++ IDE's have advanced refactoring due to the scourge that is the C Preprocessor. This also why most people, like myself, stick with Vim for C/C++ development.
C and C++ exploration and refactoring tools like rtags that hook directly into a compiler, and integrate with your editor of choice, have never failed me. I haven't put them up against too much in the way of preprocessor macro hell, but I've got to think they've got the best shot at doing "the right thing" in the face of macros.
Refactoring tools are incredibly powerful. For example, renaming a class method "foo". You can rename it yourself with a text editor, but now you have to manually update all the callers. You could try using search/replace, but what if several unrelated classes have a "foo" method? How do you only change the correct method calls? The IDE refactoring tool does this automatically.
Visual Studio with VAX (http://www.wholetomato.com/features/default.asp) is more than sufficient. The general objection to it historically has been "it's not free", but Visual Studio Code is Electron.io/node based, free, works on 3 of the major platforms, MSFT is in the process of enabling first-party support for using LLVM (I'm not sure if this is for the "Code" version of the traditional executable base --which is also available for free in the "Express" mind you) so that excuse isn't really valid anymore. If you're writing C# and not C++, then Resharper from IntelliJ is going to do you better probably. Speaking of which, JetBrain's CLion is way better than VIM w/r/t refactoring, intellisense, auto-complete, etc, not too surprising really since that's what they're famous for. Refactoring C in general is really trivial compared to the template messes I'd imagine a compiler would struggle with though. I'm not sure if they have a community edition but they offer 30 day trials IIRC and probably student discounts if you're not yet employed.
Refactoring features presented on their web are the same as features in eclipse CDT which is free and runs almost everywhere. Visual studio code is just configurable editor not IDE. In my opinion atom or sublime are better choice.
I use mostly eclipse, so maybe other IDEs already have it.
* Extract superclass/interface which will work on the whole codebase
* Support for NVI - rename, change parameters, convert to virtual interface and back
* code duplication detection (maybe exists but I never found sufficient one)
It should not be very hard to fork gcc and make a quick hack that dumps the AST. You don't need the latest optimizations or AST versions, just a correct one, so there is no need to update it a lot (sans fixing bugs you created with the hack). You wont see at this point bogus ASTs generated by gcc.
I think what is being referred to Richard Stallman's rejection of AST-dumping support in gcc (which some have requested for IDE support of refactoring, etc.) on the grounds that such support could theoretically also aid proprietary tools that could avoid the GPL by just taking the AST output.
> This open-source project is about making a fully-fledged and modern IDE built on top of popular Vim editor.
Was about to try it out until I read that. I've poured quite a bit of time into customizing Emacs and building muscle memory for it (a few years by my count), so it's probably not cost-effective for me to switch to Vim for something like this.
I guess the reasoning is switching to a modal editor takes more to get used to than switching to another non-modal one. Though you can get Emacs key bindings for Vim, surely?
> Though you can get Emacs key bindings for Vim, surely?
Why would anyone want this?
EDIT: Not meaning to be abrasive. But by most accounts the strength of vim is its keybindings whilst the strength of emacs is everything about its ecosystem. Hence evil mode for emacs is a thing.
I've spent more than half a decade in each, vim has better navigation (being able to do something like `2bcw' or :1,$s/foo/bar/ or even just straight up hjkl makes quick edits far superior - one could say it's a better editor, because it is. hell, it was based on 'ed'). Emacs is the better integrated-development environment (ecosystem and able to customize to you hearts content.. eventually you'll run into a VIMscript wall and want to shoot yourself), especially now that emacs24,25 + ELPA + Marmalade make it about 20 minutes to go from a fresh install of any OS to 'productive'.
VIMs worth learning just so you see the other side of the fence, but if your goal is just productivity, CLion does everything that that VIM configuration does and more (and there are GNU/Emacs key-bindings).
I've spent about half a decade in each too. And, not to get into an "editor war", but I disagree that Vim is the "better" editor, for the exact same reason you think it is better. While I'm coding, I would rather press down a lot of times than press "7j" and try to either guess or count how many lines I need to jump downward. On my best Vim days, I spent more brain power than I'd have liked in just figuring out the most efficient or shortest command combinations to type to do what I'm trying. Whereas in Emacs, I just reuse the same keys and have no problem repeating them. In your example of "2bcw" I would do "M-b M-b M-d" and that's simpler and more automatic for me -- I don't have to think about it one bit.
I'm curious what problems you had with YCM? My experience is the exact opposite: YCM has been frickin amazing, even on large projects like clang and llvm.
At first glance it looks like a plugin bundle, you could reach a similar setup by installing components manually , I wonder how easy you can add/remove features or extend my with additional vim plugins.
That being said very few C++ IDE's have advanced refactoring due to the scourge that is the C Preprocessor. This also why most people, like myself, stick with Vim for C/C++ development.