Projects/KDevelop4/4.6

We are happy to announce the immediate availability of KDevelop 4.6.0! It adds more than a thousand commits worth of
bug fixes, performance improvements and new features.

KDevelop aims to create an IDE which doesn't get into your way and nevertheless provides a powerful
and versatile set of tools for software development. Support for C++ and CMake are KDevelop's most prominent
and widely used features, but the 4.6.0 release -- among other things -- also continues to improve
the language support for PHP and Python.

Contents

What's New

Aside from many bug fixes and general improvements such as performance optimizations in various areas, which make KDevelop 4.6.0 faster and less memory-hungry, a few changes are especially noteworthy:

Startup

KDevelop comes with a shiny new animated Splash Screen. Furthermore you can now open files in the currently running session easily from the command line via "kdevelop $file".

UI Cleanups

The area tabs ("Code", "Review", "Debug") have been replaced with a unified button, which should make it more obvious how they are supposed to be used. You change the areas by invoking an action such as "Debug Process" and then "Go Back" to coding if you are finished in the "Debug" area. Related to that, the Working Sets are now identified by a fresh, consistent set of icons.

Project Management

The new Project Filter plugin provides a poweful tool to define which files you want to be part of your project. You can access it via the context menu in the project tree view, or from within the project settings. The old filter line edit in the project tree view was removed in favor of this more powerful and optimized approach to filtering.

Various

CMake support was also stabilized and improved, and especially gained support for new CMake features.

There's now a new, animated Splash Screen! ;)

Python

The Python language support has seen various improvements in its static analyzer, as well as in the code completion component. Especially, relative imports are now supported; types can be deduced from isinstance() calls; and there is now a built-in tool to extract information from non-Python libraries to be used by the IDE to provide better support for them.

PHP

The PHP language plugin received support for various new features introduced by the last PHP releases. As such, the editor now properly understands late static binding from PHP 5.3. From PHP 5.4 comes the support for the new short array syntax, function array dereferencing and trait declarations. Finally, the newstring and array literal dereferencing from PHP 5.5 is also supported.

Improved GDB Support

The debug session is now correctly closed when a program exits under specific conditions. Breakpoint modifications such as disabling or enabling them takes effect immediately now, with no need to stop running program manually anymore.
Debugging from external terminals has been improved, and it is now possible to debug from konsole, gnome-terminal, xfce4-terminal, xterm and probably other terminals. The Breakpoints toolview now displays only file names and the full path is accessible through tooltip, which simplifies the UI and makes it easier to understand which files contains breakpoints.

A new feature is the addition of a CPU registers toolview. It shows, and offers to edit, all user mode registers and general purpose flags for x86/x86_64 and armV7 (maybe v6 too?) architectures. This toolview combined with the Disassemble toolview makes it possible to control and watch a programs behavior on a very low level. Obviously that is not a feature used everyday, but for some specific purposes it can be very useful, e.g. to debug c/c++ code with assembly inclusions, for testing ring 3 protection algorithms/techniques or reverse engineering. Also it comes in handy if you debug an application without debug symbols in which case disassemble and registers are the only source of information about what is going on.