-
Christian Hergert authored
This commit moves many features from libide which were provided by extension points to instead be plugins. Doing so required changing how we perform our dependency injection. In particular, we want to be able to reload extensions when plugins are enabled/disabled. This is provided by IdeExtensionAdapter and IdeExtensionSetAdapter. IdeExtensionAdapter provides access to an extension that may be reloaded or changed during plugin loading based on a match key and value. The key should be an "X-Foo" style external data key in a libpeas plugin. The value is the value that should be matched. The key's value in the plugin file can have multiple values specified separated by a comma (,). This patch also lets us remove IdeLanguage, as it becomes fairly useless now that we can load things via plugins with match keys. Longer term, I'd like to cleanup IdeFile to subclass GtkSourceFile. I've started to put language specific stuff into "language pack" plugins.
b530baea