The KDevelop Hackers are proud and happy to announce that KDevelop 4.0 is finally available as a stable release. Released together is the first version of KDevelop PHP plugins, which make KDevelop a very interesting option for PHP developers.
Features
KDevelop 4.0 comes with lots of features already, even though some things had to be dropped compared to the 3.5 series due to time constraints. In particular we have focused on building an excellent C++ IDE instead of trying to integrate lots of languages halfheartedly. Of course it is still possible to add support for more languages to KDevelop and we are confident that it is actually easier than before: the best proof for that is the PHP plugin that is released alongside KDevelop 4.0.
Code navigation, syntax checking and more
The major features for C++ support include code navigation, which allows you to jump to declarations, and semantic highlighting. Combined they make it much easier to grasp new code bases and navigate in big code projects. Support for syntax checking and semi-automatic code-correction with assistants is included as well as code completion that supports classes, functions, templates, variables and include statements. For the Qt developers among us there is extensive support for the signal/slot mechanisms in Qt. You get signal-completion in connect statements as well as completion for matching slots. Very handy is the weighting of completion items based on their matching in regard to the type of function arguments or the signal-slot signatures.
Project management and code navigation
For the project management we currently have CMake support as the main buildsystem plugin, building projects with custom or generated makefiles is possible too. The CMake support also has some of the above features available so you will get some completion and semantic highlighting as well as code-navigation even in CMake files. Integration between C++ and CMake means new classes can be added to targets in CMake files semi-automatically. To ease the fixing of build errors KDevelop allows jumping to the errors in the code. Furthermore you can use QuickOpen to navigate very fast to any file, class or function in your opened projects or inside the currently opened file.
GDB integration
The integrated GDB support makes it possible to find runtime errors you may have in your codebase. It allows for the usual features like breakpoints, stepping, stopping and inspecting the current call stack. Additionally through the use of special pretty-printing support in GDB we can show many Qt, KDE and STL types in a human-readable form. So your QString's will show up with their actual string literal in the variable list, a QList will have an expandable set of child items and so on.
Documentation
The last great feature of KDevelop we are highlighting is integration of documentation. KDevelop shows inline API documentation for both, CMake and Qt, in tooltips over classes and functions and it allows you to navigate in complete documentation via a toolview.
PHP plugins
This first release of the PHP support plugins already comes with a wealth of features that take some of the burden off a web developer:
Syntax errors get reported as you type and the sources of whole projects get semantically analyzed, including PHP Doc comments for type hints of parameters and return values. Furthermore it will give you extensive code completion, with solid support for OOP. We also support the above mentioned context browsing and semantic highlighting, integrate the online PHP.net documentation and hook into the QuickOpen and class browser plugins.
More to explore
There are many more things to discover in KDevelop and the PHP plugins, like SVN integration with inline editor annotations, grepping over files, session support and source code formatting. Far too much for a short article like this, so we have created a
dedicated blog entry to show off some of the features.
Get Started!
We invite everybody to get a copy of the source code from
KDE mirrors or install packages from distributions. We wish you all many happy hacking hours. If you run into problems or have questions do not hesitate to contact us either in #kdevelop on freenode, via bugs.kde.org or on
our mailinglists.
Comments:
PHP for Qt development? - kragil - 2010-05-01
Can PHP with Qt be compiled (via Hiphop) ?
Are the PHP Qt bindings also LGPL?
Anyways: Awesome realse, congrats.
Congrats! - Eike Hein - 2010-05-01
Thanks for all the hard work :-).
Great IDE! - Damnshock - 2010-05-01
I've been using the last RC for a week and it is very very nice.
The documentation integrated in the IDE works pretty well and I find everything to be just in place.
*Really* good work and congratulations!
HipHop is not done yet - vdboor - 2010-05-01
It's not that simple. Getting a PHP codebase to run on HipHop still requires some porting at the moment; some PHP features are not supported. This is perfectly fine for large companies with huge PHP code (it's an investment which gives a return value). But for small projects it's not "just compile and go" yet.
Thank you very much! - lxg - 2010-05-01
Great to see that decent PHP development will be possible with KDE4 native tools again. Let's hope that MW will be successful bringing back Quanta, too. :)
Many thanks for your work! - ArneBab - 2010-05-02
I tried the beta, and it is really a joy to code in it! (though emacs wins currently because I often need to worke remotely via command line)
Code looks cleaner, and with the stable release it’s time for me to use it for my project again.
Many many thanks!
Great work! I'm looking - teatime - 2010-05-02
Great work! I'm looking forward to giving KDev4 a spin! :)
Re: PHP for Qt development? - Richard Dale - 2010-05-02
"Are the PHP Qt bindings also LGPL?"
Yes, they are. They need a little work to get them in step with the other Smoke based language bindings, but that should be possible for KDE 4.5.
Code parser - bluescarni - 2010-05-02
I'm playing with it and it looks really nice!
Question: is it possible to exclude specific project subdirs from the code parser?
I'm asking because working on a project which imports the whole Boost headers leads to the code parser taking up a lot of resources (both CPU and memory). I would like to be able to have all the nifty features - code completion, online docs - just for my own classes but not for the Boost ones. Is this possible?
Thanks!
Thanks! - msoos - 2010-05-02
I have been using it since the early betas. It makes coding a bliss. I cannot count the number of man-hours it saved me, but if I were to send it back to the developers in cash, they would be rich, I am sure :D
Using it and loving it - michalm - 2010-05-03
Thanks for the excellent app! I'm using it for some time now and like it very much. Semantic highlighting is the killer-feature for me.
Awesome! - SP - 2010-05-03
I've been using it for a while now, and it's really great! I miss Git support though.
great! - ventYl - 2010-05-03
I've been using older KDevelop 3.5 and since beta8 also KDevelop 4 and I really enjoy all the features it provides. Specially code completition and correction are great features throught making coder really lazy to remember some details about code :)
Thank you - Ethan - 2010-05-03
It seems as if you have really done a lot of work on this. Congratulations on all your hard work and thank you so much for taking the time to explain it all in detail and for sharing the code. <a href="http://www.mobileactive08.org"><font color="#f8f8f8">online Casino</font></a>
Great effort - Ricky - 2010-05-03
I really like Kdevelop now, you guys have done a great job.
Congratulations!
qmake support? - andresomers - 2010-05-04
First of all: congratulations on this milestone! It looks really nice. You can be very proud of this achievement.
I tried to use KDevelop on a project that I am currently working on in QtCreator, and found out to my disapointment that KDevelop can not use qmake's pro files. It can not even read them for import. There seems to be an unmaintained, unsupported plugin, but that has not seen any work for more than a year, if I interpret the repository correctly. That is a real pitty.