Removing KDevelop::ILanguage class/interface?

Kevin Funk kfunk at
Mon Dec 29 15:34:15 UTC 2014


Stumbled upon the ILanguage <-> ILanguageSupport separation a couple of times 
already and was wondering why ILanguage is there at all...

It currently provides
- a name (which is deduced from ILanguageSupport::name)
- a parseLock (which could be moved to ILanguageSupport)
- a pure-virtual 'activate' and 'deactivate' method

ILanguage is only inherited once, by 'Language', and instantiated inside the 
LanguageController. Language::{activate, deactivate} does nothing. 
LanguageController also provides access to all available ILanguages via 
methods like 'languagesForUrl', etc.

So, my question: Why is ILanguage here? Can we remove it?

- Get rid off ILanguage
- Replace uses of it with ILanguageSupport directly, remove the indirection
- There are only a few uses of ILanguage in external plugins,
  which are easy to fix
=> Simplifies quite a bit of code


Kevin Funk | kfunk at |

More information about the KDevelop-devel mailing list