KDevelop 5.2 released

A little more than half a year after the release of KDevelop 5.1, we are happy to announce the availability of KDevelop 5.2 today. Below is a summary of the significant changes -- you can find some additional information in the beta announcement.

We plan to do a 5.2.1 stabilization release soon, should any major issues show up.

Analyzers

With 5.1, KDevelop got a new menu entry Analyzer which features a set of actions to work with analyzer-like plugins. During the last 5.2 development phase, we merged more analyzer plugins into kdevelop.git which are now shipped to you out of the box:

Heaptrack

Heaptrack is a heap memory profiler for C/C++ Linux applications.

heaptrack screenshot
Screenshot of heaptrack run from the KDevelop plugin, visualizing memory usage of KDevelop.

cppcheck

cppcheck is a well-known static analyzer for C++, and can now also be run from within KDevelop by default, showing issues inline.

KDevelop with Cppcheck integration
KDevelop with Cppcheck integration

Improved C++ support

A lot of work was done on stabilizing and improving our clang-based C++ language support. Notable fixes include:

  • Properly pass on some categories of compiler flags from the build system to the analyzer, fixing e. g. parse errors in some Qt header files which cannot be parsed if a certain compiler configuration is not respected
  • Improve performance of C++ code completion in some situations
  • Restore some completion features from 4.x, such as automatic insertion of semicolons in some cases

More improvements, such as better handling of template class member functions, are already being worked on and will be in one of the next versions of KDevelop.

Improved PHP language support

Thanks to Matthijs Tijink we've got many improvements for the PHP language support. The number of syntax warnings with modern PHP code should be greatly reduced, and the type inference is better. The improvements include added support for new language features, work on the type system, as well as bug fixes. Notable improvements include:

  • Add callable type to PHP. (commit. code review D7034)
  • Process member properties/calls for unsure types. (commit. code review D6923)
  • Fix uses of class in closure parameters and default values for functions. (commit. code review D6690)
  • Allow non-scalar constants. (commit. code review D6670)
  • Add spaceship and null coalesce operators. (commit. code review D6645)
  • Support more cases of function argument unpacking. (commit. code review D6271)
  • Support for variadic functions in documentation popup. (commit. code review D6256)
  • Implement syntax support for function argument unpacking. (commit. code review D5908)
  • Add support for variadic functions. (commit. code review D5703)
  • Support of Class::{expr}() syntax from Php 5.4. (commit. code review D4902)
  • Support for $this as an array when implementing ArrayAccess. (commit. code review D4776)
  • Php7 IIFE syntax parsing. (commit. fixes bug #370515. code review D4391)

 

PHP support in KDevelop 5.2


PHP support in KDevelop 5.2

Improved Python language support

Mostly thanks to Francis Herne, some cleanup has been done in the Python language plugin as well.

  • Fixed a false-positive warning when a name used in a closure was defined later in the file.
  • Fixed highlighting of local variables in comprehensions and of parameters in lambda definitions.
  • Infer the correct type when slicing a tuple with constant integers.
  • Infer the correct type from `and` or `or` expressions (Nicolás Alvarez).
  • Internal code cleanups.

Ongoing support for other platforms

We're continuously improving the Windows version of KDevelop. For the Windows version, we upgraded the Qt version to 5.9.1, the KF5 version to 5.37 and the LLVM/Clang version to 5.0.0. Also noteworthy, on Windows, we now also ship QtWebEngine instead of QtWebKit for the documentation browser.

Get it

Together with the source code, we again provide a prebuilt one-file-executable for 64-bit Linux, as well as binary installers for 32- and 64-bit Microsoft Windows. You can find them on our download page.

The 5.2.0 source code and signatures can be downloaded from here.

Should you find any issues in KDevelop 5.2, please let us know in the bug tracker.

Comments

Sorry, I think You broke Qt Documentation because internal links don't work. Just try to open any page this documentation and clink on any link. You will go nowhere :(. Built documentation is no so much usable if I'm not able to navigate inside. Reported bug: 386929

Looking on changes in Cpp support, seems that KDevelop team focused here on improving python support. Skipping included addons like cppcheck and heaptrack the rest looks a bit poor :(.

Heaptrack looks absolutely fantastic, and is nicely integrated via the provided plugin - thanks a whole lot for this fantastic release once more, cementing my love for Kdevelop.

Keep it up folks!