<br><br><div class="gmail_quote">On Wed, May 21, 2008 at 5:58 PM, Andreas Pakulat <<a href="mailto:apaku@gmx.de">apaku@gmx.de</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="Wj3C7c">On 21.05.08 16:37:49, Richard Dale wrote:<br>
> We've recently improved the code generation of the 'smoke' libraries that<br>
> are used for the QtRuby and Korundum Ruby bindings, and it is now possible<br>
> to wrap a wider range of the KDE apis. Would it be a good idea to wrap the<br>
> KDevelop4 apis with a Ruby binding so we could at least partially implement<br>
> Ruby support for KDevelop in Ruby? If so, which headers/apis would need to<br>
> be wrapped?<br>
<br>
</div></div>Thats great. The core API is in the kdevplatform module, specifically<br>
the following libraries:<br>
<br>
editor/<br>
interfaces/<br>
language/<br>
outputview/<br>
plugins/<br>
project/<br>
sublime/<br>
util/<br>
vcs/<br>
<br>
There's also shell/ but that is only needed if somebody wants to write a<br>
complete kdevplatform application in ruby, its not something that<br>
plugins may use.</blockquote>Thanks I have all of those installed under kdevplatform except 'plugins', and so I'll try running through the bindings code generator in a week or two and report here how it went.<br>
<br>The korundum bindings have a 'krubypluginfactory' executable which can start any kde plugin written in ruby without needing to compile anything. It gets the details of what to do from the .desktop file, and the name of the ruby script to run from the X-KDE-PluginKeyword entry. For example:<br>
<br>X-KDE-PluginKeyword=kdevelop/ruby_language_support.rb<br><br>Would instantiate a ruby class KDevelop::RubyLanguageSupport and start it running.<br><br>But I'm not sure if it can work with the multiple inheritance that the C++ language support uses:<br>
<br>class CppLanguageSupport : public KDevelop::IPlugin, public KDevelop::ILanguageSupport<br><br>So rather than have a Ruby class as the top level it might be necessary to have a C++ class as the top level within the plugin and not use krubypluginfactory. Then have it start the ruby interpreter.<br>
<br>-- Richard<br></div><br>