The KDE source code is now available under the LXR system, courtesy of our friends at nadmm.com.
Users and developers may now browse the KDE source code complete with cross-references, which should prove extremely useful. For those of you wondering about the difference between lxr.kde.org and webcvs.kde.org, read on for an explanation from Kurt.

Using WebCVS, you can view the contents of a file at any revision and compare
differences between revisions.

Using LXR, you view only the current revision, but, every object in the file
is cross-referenced to every other object in the LXR database.

Let's take the KConfig class for example. I can go to the kconfig.h file in
WebCVS and view the current revision... or I can view past revisions... or I
can compare various revisions. To see how it has changed historically, this
is very handy. But say I want to know where KConfig is used elsewhere in KDE.
This is impossible to do automatically in WebCVS.

If I go to the KConfig class in LXR, though, I see that all objects and
methods in the file are hyperlinks. If I click on KConfig, I get a list of
where it is defined, where it is declared as a forward declaration, and where
it is referenced (in 939 files!). I can click on any of those links to go
directly to where it is used.

Or say I want to see where KSocket is defined and used in KDE. I go to theidentifier search and enter KSocket. I get a page listing everything I need to know.

Really, the importance of cross-referenced links to any large project can't
be emphasized enough. The only reason we haven't had something like this
before is because they are such a PITA to set up. :-/

Theoretically you don't need kdesupport anymore (well, it was barely needed in the past too, but now changes have made that the absolutely needed stuff went to the appropriate kde* package - like kdenetwork). It mostly contained packages external to KDE that were anyways shipped with most distributions (this also potentially created version conflicts for some packages).

Of course, it much depends on the distro packagers if they prepared their packages so that they don't need anything in kdesupport. Let's hope.

There is another great set of source code analysis tools that a friend of the KDE project has put in place: Amir Michail developped a code reusability measurment tool: CodeWeb, as well as a advanced CVS search tool: CVSSearch. It's a pity people don't put just a tiny bit of heart into getting these tools used in their daily work. They are great. Well, shame on me, as I'm one of those who doesn't.

These, together with lxr, could really really improve KDE developers' productivity a lot.

Yes really cool,
yet is it just me or the favicon has switched to yahoo's?
By the way, the favicon has not worked by me since the dot moved. Hope this gets fixed since I love my bookmarks bar in konqueror...

Yes. Is that the master qwertz doing it again? I'd really like to see an icon set by qwertz. Has he made any icons for KDE? I think it would make the KDE desktop look _very_ classy. No offense, Thorsten. :)

LXR needs a local copy of the code to cross reference. No...it can't get it automatically. Someone needs to put the code there. Right now, the code is refreshed daily and cross referenced by a script. The LXR developers are working on a plug-in system that would make it possible to cross reference other languages.

Just a simple question by an ignorant KDE fan - why can't I find any comments in the KDE source code? Is documenting the source code considered "uncool" here? Wouldn't it help new would-be KDE developers tremendously if there would be a minimal amount of documentation within the source code? It's a long time ago that I was an active programmer, but I remember a rule of thumb that said you should have at least as much comments as you have commands in your source code...

That's one of the reasons we built CVSSearch. We noticed that KDE developers typically write CVS comments but not code comments. So if you can associate the right CVS comment with the right code fragments in the most recent version of the code, then you have commented source.