MAY
1
2010

KDevelop 4.0 Stable Released into the Wild

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

Can PHP with Qt be compiled (via Hiphop) ?
Are the PHP Qt bindings also LGPL?

Anyways: Awesome realse, congrats.


By kragil at Sat, 2010/05/01 - 3:16pm

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.


By vdboor at Sat, 2010/05/01 - 7:51pm

"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.


By Richard Dale at Sat, 2010/05/01 - 11:34pm

Thanks for all the hard work :-).


By Eike Hein at Sat, 2010/05/01 - 6:59pm

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!


By Marc Deop at Sat, 2010/05/01 - 7:19pm

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. :)


By lxg at Sat, 2010/05/01 - 8:06pm

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!


By Arne Babenhauserheide at Sat, 2010/05/01 - 10:25pm

Great work! I'm looking forward to giving KDev4 a spin! :)


By teatime at Sat, 2010/05/01 - 11:03pm

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!


By Francesco Biscani at Sun, 2010/05/02 - 12:13am

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


By msoos at Sun, 2010/05/02 - 7:57pm

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.


By Michał Małek at Sun, 2010/05/02 - 10:04pm

I've been using it for a while now, and it's really great! I miss Git support though.


By SP at Sun, 2010/05/02 - 11:17pm

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 :)


By ventYl at Mon, 2010/05/03 - 5:17pm

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. online Casino


By Ethan at Mon, 2010/05/03 - 5:38pm

I really like Kdevelop now, you guys have done a great job.
Congratulations!


By Ricky at Mon, 2010/05/03 - 6:34pm

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.


By andresomers at Tue, 2010/05/04 - 8:21am