C++14 supporting editor/IDE
I'm looking for some powerful programming environment for C/C++. In fact the only think i need is powerful source navigating + creating tool. Doesn't matter if its free or commercial. I prefer some linux tool, but it doesn't have to be necessary linux app.
What i need is some kind of editor with following capabilities:
- more open files + tabs/buffers switching
- highlighting (+ bracket matching, folding, etc...)
- save sessions
- preview window(when the cursors stops on some symbol, i have also an preview window, that shows me the definition of that symbol)
- searching for uses of the symbol through code
- intelligent completion (must support c++ 14!)
What would be nice:
- code beautifizier or something similar
- utf-8 support
- editor templates(for example automatic comment header for modules, functions...)
- other editor scripting
- a terminal/console accessible from program || compiling debugging capabilities(just for to be able to compile the whole project without switching extensively to command line)
- program flow visualization
Please do anyone around the whole world knows anything, that knows all of that?
I've tried several editors/IDEs, but all of them misses something. I've decided to emphasise missing support for new c++14 - it's now probably the biggest problem:
VIM
- Amazing scripting capabilities
- 4 and 6: i've tried to use vim+ctags+cscope and vim+gtags + omnicomplete.
But its not that usable. This doesn't work properly. Vim doesn't know c++ and it does not know the symbol context. Though i've been able to achieve basically the desired behaviour after hours of learning vim scripting, i'm not able to use it in even a little more complicated manner.(Lets say i have global variable and local variable with same names and different types - vim ofc does not recognize if im seeing now global or local only variable. And i'm not even talking about namespaces, etc....). Actually VIM now support c++14 with the help of clang(libclang) and there is awesome plugin called YouCompleteMe, that can use libclang, and its auto-complete really workds with c++14 code! And it makes the vim the only editor supporting c++14.. This plugin is now more or less usable in more editors(vim, emacs, sublime). It adds autocomplete, jump to definition and error messages.
- c++14 supported
Source Insight
- Amazing highlighting capabilities(different font for highlighting is amazing(especially for function names in function defintion header for example), also there is possibility to assign keyboard shortcut to cancel font differences, and leave only color highlighting(when you are bothered with different code alignment(due to different fonts)
- Problems with 1) (though a hacked library for this called TabsSiPlus exists)
- no terminal/console
- Software is not maintained anymore, its not open source(and even not free) :(((
- c++14 support missing
SlickEdit
- Amazing customizing possibilities, can emulate vim editing style(WOW!)
- no terminal/console(actually there is one, but not that good, however it has builtin compiling capabilities
- it has strange GUI - a lot of space is occupied by scrollbars, different window captions, etc..
- its kinda expensive(comparing to others)
- c++14 support missing
Kdevelop4
- Very pleasant GUI, nice console, very fast, can emulate vi editing style(not too well though)
- miss force rescan/retag project (sometimes there are wrong symbol references, especially in bigger projects - this bugs me a lot)
- its preview window doesn't show definition, only reference to definition, the definition then is showed in main editing window.. - cannot see actual code and the symbol definition at once :((
- c++14 support missing
Eclipse
- nice environment with lots of functionality.
- don't have ad4), however it has some sort of preview bubble. When you hover mouse cursor upon symbol, it will show a bubble with symbol definition. Its nice functionality, but unfortunately you need to use mouse, and its noway that user friendly as separate preview window.
- also its a little slow, but i think its due to realtime syntax checking, and it probably will be disablable.
- c++14 support missing
Emacs
- Support c++14 by similar plugins as vim(YouCompleteMe)(see in Vim section).
- Please can some proficient Emacs user fill in this section?
- c++14 supported
Sublime Text 3
- Not free
- Support c++14 by similar plugins as vim(YouCompleteMe)(see in Vim section). Though i had some problems with it. Plugin was more unstable than in Vim for me.
- Through different plugins it support more or less the same functionality(from user view) as vim.
- c++14 supported
Do any of you use some different editor, that can do anything from the list above, or maybe some plugins/scripts that can achieve the demanded functionality?
Answers (3)
Eclipse supports c++14, all you need to do is to add -std=c++1y in your prefrences->C/C++->Build->Settings->Discovery
for "CDT Cross GCC Built-in Compiler Setting" add "-std=c++1y" at the end of compiler specs.
You also set the dialects in your project setting to support c++14,
Go to your project setting->C/C++ Build->Settings->GCC C++ Compiler->Dialect and select -std=c++1y
Regarding VIm and your point 6, I have heard that clang_complete, which is leveraging clang from LLVM compiler was quite accurate but I have not yet tested myself.
Try Eclipse, can handle almost everything (from Java to C with GNU Tools)