Allow language plugin metadata JSON to declare support for >1 language

Authored by kossebau on Feb 3 2017, 12:54 AM.

Description

Allow language plugin metadata JSON to declare support for >1 language

Summary:
A plugin implementing ILanguageSupport can specify the language supported
by the plugin JSON metadata key "X-KDevelop-Language", which is specified
to only take one string item.
The only known effective user of this metadata is the filetemplates plugin,
which takes the "Language" property of a to-be-applied template file to ask
the language controller for a matching language plugin, to get a proper
class helper object for the code generation.

KDevCLang currently has its "X-KDevelop-Language" metadata set to "C",
while it can support C, C++ & Objective-C. As a result the language
controller currently will not deliver KDevCLang to the filetemplate plugin
when asked for "C++", which then flaws the generation of C++ classes.

This patch introduces a new key "X-KDevelop-Languages" (for semantic correctness)
to fix this, and emits a temporary warning to help anyone to port their
language plugins as needed.

Reviewers: mwolff, KDevelop

Reviewed By: mwolff, KDevelop

Subscribers: mwolff, kdevelop-devel

Differential Revision: https://phabricator.kde.org/D4423