Favorite IDE/editor for Qt
-
I use Qt Creator (Qt development for both mobile and desktop), Eclipse (for Java and Android development), vim for everything else and in-between.
-
[quote author="cbrake" date="1282679946"]I typically use Vim for editting, and Eclipse for debugging, but I've been trying to use Qt Creator more. I like the FakeVIM mode, but it still does not have enough features to replace VIM. One of the things I miss the most is the ctrl-N for word completion -- perhaps there is something equivalent.
For debugging I've still not been able to get Qt Creator debugger to work as well as Eclipse. For some tasks it works well, for other tasks, it has trouble displaying variables, and overall the GDB integration does not seem as stable as Eclipse. However, I'm looking forward to using it more as I learn Qt Creator, and it improves. I wrote a short article about the subject:
http://bec-systems.com/site/704/qt-creator-for-cc-development
[/quote]
ctrl-Space does word completion in QtCreator
-
It is rather difficult to get used to Ctrl+Space when you are used to Ctrl+N/Ctrl+P. Especially since C+N opens the /New/ dialogue :)
-
@Ivan: All keys can be reassigned, so just change them to suite your needs better.
-
[quote author="Ivan" date="1281359417"]Yes, I know, so does the KDevelop.[/quote]
They are different implementations, and differently "conforming".
[quote author="Ivan" date="1281359417"]QtCreator2 has come a long way concerning FakeVim mode (compared to 1.x), but it still isn't sufficiently powerful for my taste.
From my point of view, it needs (the same goes for KDev) exporting of menu actions and similar to FakeVim command - so that, for example, I can type :vsplit instead of Ctrl+E, 3... and it desperately needs command completion.[/quote]
Just typing :vsplit actually works. No need to map anything. But if you want to map anything, there's Tools->FakeVim->Ex Command Mappings.
[quote author="Ivan" date="1281359417"]I haven't checked whether it supports custom key mapping (*map commands in Vim) but that also would be essential :)[/quote]
Seeing commits like 44c02264d "fakevim: make :map work for non-ASCII characters" suggests that something like that works.
-
[quote author="Duck" date="1283074460"]
They are different implementations, and differently "conforming".
[/quote]Wasn't QtCreator's FakeVim based on Kate's (GSoC project from while back)?
[quote author="Duck" date="1283074460"]
Just typing :vsplit actually works.
[/quote]Yes, I saw. But I have no idea in which version it was introduced. And it behaves a bit odd when you want to close a split with :q - it leaves the splits, but closes the current file (and all splits that used to show it, become empty)
As for mapping, I meant something like
@:imap <F5> <ESC>:make<CR>@
(or a more complicated function calling etc. - it doesn't need to be Vimscript, Qt/ECMAScript would do just fine)
Thanks for the tip on ex-mappings. It can be useful, but it is a bit tedious to set up manually for every item.
From my point of view, if the above (vim-like-scripting) was implemented, the actions could have a default qtc_ActionName ex command, and we could define comething like this in .qtcreatorvimrc (or wherever)
@:command MyCommand call SomeFancyFunction(...)@
-
[quote author="cbrake" date="1282679946"]I typically use Vim for editting, and Eclipse for debugging, but I've been trying to use Qt Creator more. I like the FakeVIM mode, but it still does not have enough features to replace VIM. One of the things I miss the most is the ctrl-N for word completion -- perhaps there is something equivalent.[/quote]
It has Ctrl-Space for C++ code completion, taking scopes into account and such. That's not exactly what Ctrl-N provides, but some people seem to be more eager to have "C++ consciousness" instead of "pattern matching".
[quote author="cbrake" date="1282679946"]
For debugging I've still not been able to get Qt Creator debugger to work as well as Eclipse. For some tasks it works well, for other tasks, it has trouble displaying variables, and overall the GDB integration does not seem as stable as Eclipse.[/quote]Now, that's interesting. Which issue on http://bugreports.qt.nokia.com/browse/ are you refering to? I quickly browsed through the debugger related issues and except for the Mac-specific QTCREATORBUG-2097 there's nothing stability related that's easily attributed to Qt Creator (as opposed to gdb itself).
Also, there's this issue of "usability". Eclipse C++ debugging is so fragmented that's not even funny anymore. CDI? DSF? TCF? CDI is declared obsolete, still widely used because it, well, does not create surprises anymore. According to http://dev.eclipse.org/mhonarc/lists/cdt-dev/msg20191.html DSF still cannot really put breakpoints in dynamically loaded plugins, and TCF is "experimental", at best. To my best understanding, none of the three modes can debug MSVC compiled binaries (Qt Creator can), none of them does anything like "pretty-printing" of (non-trivial) Q* or std::* or Symbian types, or even user defined types. How do you visualize, say, the properties of a QObject (-derived class) in the (any of the) Eclipse debuggers?
-
[quote author="Ivan" date="1283077985"]
Wasn't QtCreator's FakeVim based on Kate's (GSoC project from while back)?[/quote]No, it's a completely unrelated code base.
[quote author="Ivan" date="1283077985"]
[quote author="Duck" date="1283074460"]
Just typing :vsplit actually works.
[/quote]Yes, I saw. But I have no idea in which version it was introduced. And it behaves a bit odd when you want to close a split with :q - it leaves the splits, but closes the current file (and all splits that used to show it, become empty)
[...]
From my point of view, if the above (vim-like-scripting) was implemented, the actions could have a default qtc_ActionName ex command, and we could define comething like this in .qtcreatorvimrc (or wherever)@:command MyCommand call SomeFancyFunction(...)@[/quote]
The "odd" closing behaviour is inherited from Creator core. :make also works directly, :imap works at least for a limited set of actions, and regarding "if Foo was implemented...": FakeVim is really easy to get involved with, with more than a hundred contributions from outside Nokia so far.
I do agree that having a "standardized" way to access Creator core functionality would not hurt, on the other hand, hard-wiring, say :vsplit to the respective core action is only three lines, so there has to be a few hundreds of such cases of interaction to make implementing a generic interface worth while.
-
[quote author="Duck" date="1283097413"]... and regarding "if Foo was implemented...": FakeVim is really easy to get involved with, with more than a hundred contributions from outside Nokia so far.[/quote]
I know, but unfortunately I have too much already on my plate with KDE and my PhD studies so I can't really do this as well.
The only way I can currently contribute is by suggesting improvements.
-
For any complex project, Eclipse is still my IDE of choice. Due to its extensibility you can rely on additional tools for a lot of tasks, e.g. you can add XML editing with automatic XSD validation and auto-complete support or seamless integration with bug tracking tools.
The only major feature I am missing in Eclipse compared to QtCreator is its automatic parsing of Qt objects into meaningful output when debugging. But apparently someone is working on that for the next CDT release.
-
Kdevelop 3.5 with Qt Designer plugin is the best most powerful combination ever. I am new to QT Creator and I like it's automatic slot/signal features and the really good and stable UI. However Kdevelop 3.5 is extremely powerful with integrating all kinds of documentation from whatever library. I sometimes deal with chip vendors and their libraries (on top of other proprietary and open source libraries). Being able to just plugin a documentation and have it appear as you type is awesome. Even Kdevelop 4 is not as good as Kdevelop 3.5. Kdevelop 4 left out many key features kdevelop 3.5 had. I hope KDevelop 4 and QT Creator inherit those features from 3.5.
With QT Creator I haven't figured how have the libc, boost and other common library functions and classes appear as I type. I am not even sure what kind of documentation formats it recognizes. -
Qt Creator, my favorite feature is the integrated Qt documentation and with FakeVim I don't miss vim at all.