5.2.4 impression

Matthew Woehlke mwoehlke.floss at gmail.com
Wed May 8 19:24:21 BST 2019

On 03/04/2019 05.50, Aleksey Midenkov wrote:
> 5.2.4 became much more stable. That's a great thing! Thanks, guys!
> But it's still not production-level stable [...] it tries to parse 
> preprocessor directives, but does it incorrectly (not all syntax is
> covered).
I doubt very much that it does so "incorrectly", unless you mean "not
the way I want it to". KDevelop 5 uses clang on the back-end for code
parsing, which means it's going to parse your code exactly the way a
compiler will parse your code. (Because... that's what it's *doing*;
using a real, full-fledged compiler to parse your code.) About the only
times I've seen this "fail" are where clang and GCC behave differently.

Yes, this is inconvenient in the sense that some code may not be parsed,
but the alternative is for the KDevelop authors to spend all their time
(and seriously, I *mean* **all** their time) trying to keep up with the
fast pace of modern C++ in order to produce a poor quality code parser.

KDevelop 4 did that (back *before* C++ development "took off"), and,
trust me, having used both, the KDevelop 5 approach is *much* better.

> So, please, concentrate on more polishing the basic functionality and
> do less new features. Please, test on large sources other than
> KDE/KDevelop.
I use KDevelop at work, on fairly large code bases. It works great and
rarely crashes (though I do occasionally see it crash when a whole lot
of files change at once, i.e. git branch switch). Overall I am very
happy with its basic functionality. If you are seeing problems, I
suggest reporting specific bugs instead of ranting that "it's still not
production-level stable", because that doesn't seem to match most users'
experience. (Heck, I've been using KDevelop "in production" since
sometime 4.x.)

> And add an option to not follow preprocessor directives: just parse
> whole source.
You could try to talk to the clang developers about this; otherwise I
don't see it happening.

> Please do jump to *declaration body*, not *forward declaration*.

Huh? What is a "declaration body"? Do you mean "definition"? You already
*can* jump to a definition (if KDevelop knows where it is, which
requires the definition to be part of a loaded project). Again, if this
isn't working, please give specific, reproducible examples rather than
wild accusations.


More information about the KDevelop mailing list