The Randa Meeting 2014 is all about having tens of KDE developers and contributors hacking together in the mountains of Switzerland. While we enjoy the wonderful food and the impressing surroundings, this meeting is also the perfect place for new features and new ideas. Even more importantly, people from all around the world and from all the KDE sub-communities are very close to each other, and we can in fact hear what people are saying in the other rooms.
Being this close to each other is wonderful because it allows a very fast and very efficient sharing of ideas. This blog post will list several features that were implemented in the past days and that concern the KDevelop team, and you will see that they are very diverse.
KDevelop 5 on Windows
The KDE On Windows team is doing an amazing work and they managed to port KDevelop 5 on Windows. KDevelop 5 works, along with all the frameworks and other libraries on which it depends. This means that Windows now has a complete and feature-full IDE that understands C++, highlights the structure of the code, allows navigation between declarations and their uses, knows the types of the variables, can provide code-completion for class members, variables, include files, etc. Several code-generation and refactoring operations are also possible, like renaming a class/method/variable or the automatic scaffolding of .cpp files (you write the .h file, KDevelop generates the method definitions in the .cpp file). These features are available for C++, PHP, Python and Ruby (and soon Javascript).
KDevelop can also be used as a front-end to GDB, thus providing a first-class debugging experience, with breakpoints and inspection of variables and threads. Support for Git and other versioning tools is built-in, so you can commit/push/pull/merge/handle branches from inside the IDE, view diffs, and even have a git-blame-like display in the left margin of the code editor. Finally, KDevelop comes with all the niceties of the Kate text editor, like block-mode selection, code snippets, scripts, the Vi input mode, and syntax highlighting for 240 different programming and markup languages.
So, this is an impressive list of features that many KDE people know about, but having all of this available on Windows, as Free Software, deserves to be enumerated in its entirety.
KDevelop QML/JS improvements
On a more personal side, I had time to improve the QML/JS language support plugin of KDevelop 5. Most of the improvements are under the hood, and one even allowed me to drop nearly 15000 lines of QML (Qt5, that the plugin can now use, provides QML module description files for all the Qt4 and Qt5 modules, so no need to ship them anymore). One visible new feature is the font chooser helper widget, that displays a list of all the fonts installed on the system. This way, you don't need to open a rich text editor or any other program that lists fonts in order to find how exactly a font is named.
KDevelop 5 bug fixes
Instead of working alone at home, with only sporadic contacts with other people through IRC and e-mails, I can work in a room with many other people. In fact, I'm sitting just at the left of Aleix Pol, and in front of Kevin Funk. Both are busy fixing bugs in KDevelop 5 (that we now use for actual work) so that it becomes solid and stable. The list of bugs fixed is too long to be enumerated, but projects now load correctly, tool-tips work as expected (their behavior had changed with Qt5 and we had to adapt the KDevelop code), and Milian Wolff (who is not in Randa, unfortunately) is optimizing the core of KDevelop for several days.
Love for api.kde.org
Sometimes, someone has a question and asks it. It also happens that, in the middle of a meeting concerning KDevelop (or any other project), somebody starts to participate and gives us his or her point of view. It is also very interesting to ask people for help or simply to discuss with them. KDE Edu people are asking KF5 Porting people for advice, and the KDE SDK group held a meeting with the KDE Book group in order to discuss how KDE should be documented.
This last meeting was especially great because it allowed "hard-coders" (developers of KDevelop are developers targeting other developers) to meet people working on the documentation. We discovered that we have shared interests (all of us want developers to discover that the KDE Frameworks exist, that they are wonderful and can easily be used in Qt applications) and that working on the documentation is easy and rewarding.
For instance, I gave some love to the API documentation of the frameworks. The main page has not yet changed, but each framework now has a nice box that gives information about who is the maintainer of the framework, how to use it using CMake or QMake (yes, KDE Frameworks can be used in QMake projects), what is its mailing list and IRC channel, a Git clone URL, and a link to the freshly-released Inqlude repository of Qt libraries.
The changes are already partly online, but api.kde.org is regenerated only once a day or so. Some features and bug fixes (like links to lxr.kde.org for each documented class) will therefore appear only tomorrow.