KDevelop 5.2 beta 1 released

We are happy to announce the release of KDevelop 5.2 Beta! Tons of new stuff entered KDevelop 5.2, a bigger blog post show-casing all the features in 5.2 will follow when we release the final version. Here's a brief summary of what's new in this version:

Internal changes

After someone triggered discussions at Akademy, KDE's annual developer conference, about why there are still two different repositories -- kdevelop.git and kdevplatform.git -- for the main functionality of KDevelop, the KDevelop team decided that it's time to ditch the idea of having two separate repositories and merged kdevplatform.git into kdevelop.git. This simplifies maintenance of the core bits of KDevelop, makes it easier for newcomers to understand where to find core KDevelop plugins, makes it easy to keep up with code changes, etc. pp.. In the past years, we've noticed that the separation caused more confusion than anything else to all stakeholders.

For end users, nothing will change. This is mostly interesting to developers and packagers: the kdevplatform package can now simply be removed.

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

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.

For lack of a better summary, we're listing the changes here with their accompanying change messages:

  • Add callable type to PHP. (commit. code review D7034)
  • Process member properties/calls for unsure types. (commit. code review D6923)
  • Use null default types for determining argument type. (commit. code review D6915)
  • Fix uses of class in closure parameters and default values for functions. (commit. code review D6690)
  • Fix bug 381123: crash while parsing PHP code. (commit. code review D6837)
  • Use return typehints in typebuilder. (commit. code review D6680)
  • Mark return types as uses. (commit. code review D6675)
  • Allow non-scalar constants. (commit. code review D6670)
  • Add spaceship and null coalesce operators. (commit. code review D6645)
  • Better support iterable typehint. (commit. code review D6644)
  • Add return typehint support. (commit. code review D6643)
  • Add more typehints to arguments. (commit. code review D6342)
  • Add unit test for variadic functions with typehints. (commit. code review D6271)
  • 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)
  • Fix duchain unit tests. (commit. code review D5817)
  • 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)

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 in the Experimental Releases section.

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

Please give this version a try and as always let us know about any issues you find via our bug tracker.

Comments

I am working on Windows 10 and when I try to create a new project from template it only adds the .kdev files. It happens with all the templates. I checked the templates folder and they are correct. In the meantime I just copied the template.

Is this a bug, or maybe I am missing something, I use the released binary from this website.

Thank you.

PD: I like to report bugs, however I hate reCaptcha, isn't other way to check for spam? :S