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