We are happy to announce the release of KDevelop 5.3 Beta, almost exactly twenty years after KDevelop's first official release! Here's a brief summary of what's new in this version:
With 5.1, KDevelop got a new menu entry Analyzer which features a set of actions to work with analyzer-like plugins. For 5.2 the runtime analyzer Heaptrack and the static analyzer cppcheck have been added. During the last 5.3 development phase, we added another analyzer plugin which now is shipped to you out of the box:
Clazy is a clang analyzer plugin specialized on Qt-using code, and can now also be run from within KDevelop by default, showing issues inline.
The KDevelop plugin for Clang-Tidy support for now is developed and released independently. It is scheduled to be merged into KDevelop for 5.4.
With all the Analyzers integration available, KDevelop's own codebase has been subject for their application as well. Lots of code has been optimized and, where indicated by the analyzers, stabilized. At the same time modernization to the new standards of C++ and Qt5 has been continued with the analyzers aid, so it can be seen only in the copyright headers KDevelop was founded in 1998 .
Improved C++ support
A lot of work was done on stabilizing and improving our clang-based C++ language support. Notable fixes include:
- Clang: include tooltips: fix range check. (commit. code review D14865)
- Allow overriding the path to the builtin clang compiler headers. (commit. See bug #393779)
- Always use the clang builtin headers for the libclang version we use. (commit. fixes bug #387005. code review D12331)
- Group completion requests and only handle the last one. (commit. code review D12298)
- Fix Template (Class/Function) Signatures in Clang Code Completion. (commit. fixes bug #368544. fixes bug #377397. code review D10277)
- Workaround: find declarations for constructor argument hints. (commit. code review D9745)
- Clang: Improve argument hint code completion. (commit. code review D9725)
Improved PHP language support
Thanks to Heinz Wiesinger we've got many improvements for the PHP language support.
- Much improved support for PHP Namespaces
- Added support for Generators and Generator delegation
- Updated and expanded the integrated documentation of PHP internals
- Added support for PHP 7's context sensitive lexer
- Install the parser as a library so it can be used by other projects (currently, umbrello can use it) (Ralf Habacker)
- Improved type detection of object properties
- Added support for the object typehint
- Better support for ClassNameReferences (instanceof)
- Expression syntax support improvements, particularly around 'print'
- Allow optional function parameters before non-optional ones (Matthijs Tijink)
- Added support for magic constants __DIR__ and __TRAIT__
Improved Python language support
The developers have been concentrating on fixing bugs, which already have been added into the 5.2 series.
So far there is only one improvement specific to 5.3, but surely with more to come:
- Inject environment profile variables into debug process environment. (commit. fixes bug #322477. code review D14870)
Support for other platforms
KDevelop is written with portability in mind, and relies on Qt for solving the big part there, so next to the original "unixoid" platforms like Linux distributions and the BSD derivatives, other platforms with Qt coverage are in good reach as wel, if people do the final pushing. So far Microsoft Windows has been another supported platform, and there is some experimental, but maintainer-seeking support for macOS. Some porters of Haiku, the BeOS inspired Open Source operating system, have done porting as well, building on the work done for other Qt-based software. For KDevelop 5.3 the small patch still needed has been applied to KDevelop now, so the Haiku ports recipe for KDevelop no longer needs it.
KDevelop is already in the HaikuDepot, currently still at version 5.2.2. It will be updated to 5.3.0 once the release has happened.
Note to packagers
The Clazy support as mentioned above has a recommended optional runtime dependency, clazy, more specifically the clazy-standalone binary. Currently clazy is only packaged and made available to their users by a few distributions, e.g. Arch Linux, openSUSE Tumbleweed or OpenMandriva,
If your distribution has not yet looked into packaging clazy, please consider to do so. Next to enabling the Clazy support feature in KDevelop, it allows developers to easily fix and optimize their Qt-based software, resulting in a less buggy and more performant software again for you.
You can find more information in the the release announcement of the currently latest clazy release, 1.4.
You can find the Linux AppImage (learn about AppImage) here: KDevelop 5.3 beta 1 AppImage (64-bit)
Download the file and make it executable (chmod +x KDevelop-5.2.80-x86_64.AppImage), then run it (./KDevelop-5.2.80-x86_64.AppImage).
The source code can be found here: KDevelop 5.3 beta 1 source code
Note: Unfortunately due to a problem in our Windows build system which we could not fix in time, we cannot provide Windows installers for this release yet. Windows installers will be published again as soon as the problem is fixed. Sorry!