A little less than a year after the release of KDevelop 5.2 and a little more than 20 years after KDevelop's first official release, we are happy to announce the availability of KDevelop 5.3 today. Below is a summary of the significant changes.
We plan to do a 5.3.1 stabilization release soon, should any major issues show up.
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 had been developed and released independently until after the feature freeze of KDevelop 5.3. It will be released as part of KDevelop starting with version 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.
There are a couple of improved features in 5.3:
- Inject environment profile variables into debug process environment. (commit. fixes bug #322477. code review D14870)
- Improve support for 'with' statements. (commit. fixes bug #399533, #399534. code review D16085)
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 well, 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.
Together with the source code, we again provide a prebuilt one-file-executable for 64-bit Linux (AppImage), as well as binary installers for 32- and 64-bit Microsoft Windows. You can find them on our download page.
The 5.3.0 source code and signatures can be downloaded from here.
Should you find any issues in KDevelop 5.3, please let us know in the bug tracker.