20 years after KDevelop’s first release, KDevelop 5.3 is now released with features like a new analyzer and improved support for some languages.
A new type of analyzer plugin in KDevelop 5.3
In version 5.1 KDevelop got a menu entry Analyzer which provides a set of actions to work with analyzer-like plugins. With version 5.2, a runtime analyzer called Heaptrack and a static analyzer called cppcheck were added. In the development phase of KDevelop 5.3, another analyzer plugin was added which is available with the current release.
The new analyzer named Clazy is a clang analyzer plugin specialized for Qt-using code. It can now also be run from within KDevelop by default displaying the issues inline. The KDevelop plugin for Clang-Tidy support will be released as part of KDevelop starting with version 5.4. It is released independently as of now.
Internal changes in KDevelop 5.3
KDevelop’s own codebase has been subject for using analyzers. A lot of code has been optimized and also stabilized in places indicated by the analyzers. There is also modernization to the new standards of languages like C++ and Qt5 with the aid of analyzers.
Improved support for C++
Lot of work was done in KDevelop 5.3 on stabilizing and improving KDevelop’s clang-based language support for C++. The notable fixes include:
- In clang tooltips were included, range check was fixed.
- The path to the builtin clang compiler headers can now be overridden.
- Now the clang builtin headers are always used for the libclang version used.
- Requests are completed in a group and only the last one is handled.
- The template for Class/function signatures in Clang Code Completion is fixed.
- A workaround for constructor argument hints to find declarations.
- In clang, argument hint code completion is improved.
Improved support for PHP
With the help of Heinz Wiesinger, there are improvements for PHP support in KDevelop 5.3.
- There is much-improved support for PHP Namespaces.
- Support for Generators and Generator delegation is added.
- The integrated documentation of PHP internals has been updated and expanded.
- Support for context-sensitive lexer of PHP 7.
- Installing the parser as a library so other projects can use them.
- The type detection of object properties is improved.
- Support is added for the object typehint.
- ClassNameReferences is better supported.
- Improvements to expression syntax support particularly around ‘print’.
- Optional function parameters are allowed before non-optional ones.
- Support for magic constants: __DIR__ and __TRAIT__ are added.
Improved Python language support
The focus is on fixing bugs, which have been added to the 5.2 series. A couple of improved features in 5.3 are:
- Environment profile variables are injected into debug process environment.
- The support for ‘with’ statements is improved.
There is also experimental, but maintainer-seeking support for macOS and port for Haiku.
For more details, visit the KDevelop website.