Import statements and code-completion for QML Components
When using QML, it may be quite frustrating to have to constantly read the documentation in order to discover what components do exist and what are their properties, signals and slots. The QML/JS plugin aims to solve this problem by implementing two features:
- Support for special files that describe the QML components available on a system. These files, named
plugin.qmltypes, are valid QML files that describe the components of a module and their signals, slots, methods and properties. These files even list all the enums exposed by Qt to the QML world, with their enumeration values. It is, in fact, a complete dump of what a C++ compiler could discover by reading all the Qt header files.
- Support for import statements. When the user imports a module, the plugin loads the corresponding
plugin.qmltypesfile and adds its declarations to the global scope of the file currently being edited.
The first point has already been implemented and works quite well. It was fairly easy, as there is nothing to guess. The
plugin.qmltypes file provides everything needed, as shown on this picture:
You see that the parameters and their types are identified. The return type of this signal (strange... a signal with a return type) is also recognized.
Support for import statements is not there yet, but is the subject of my first week of work. I'll keep you informed!
I'm going to Randa
A couple of weeks ago, I was asked if I could attend the Randa meeting. As Switzerland is not too far from Belgium (less than a day by train), and because I always wanted to meet KDE developers "in real life", I accepted. I will have the occasion to work on KDevelop, the KDE SDK, and I also plan to discuss and work on Baloo with Vishesh Handa (my GSoC project of last year was a user query parser for Baloo).
The place seems great and many developers will be there. I am really looking forward this week at Randa, and I want to thank Mario Fux and the others who make this meeting possible!