@techee commented on this pull request.
- void (*calltips_show)(GeanyDocument *doc, gboolean force);
+ + gboolean (*goto_provided)(GeanyDocument *doc); + void (*goto_perform)(GeanyDocument *doc, gint pos, gboolean definition); + + gboolean (*doc_symbols_provided)(GeanyDocument *doc); + GPtrArray *(*doc_symbols_get)(GeanyDocument *doc); + + gboolean (*symbol_highlight_provided)(GeanyDocument *doc); + + gchar _dummy[1024]; +} PluginExtension; + + +void plugin_extension_register(PluginExtension *extension); +void plugin_extension_unregister(PluginExtension *extension);
Ah also: do we want to add user data to those functions? That could be handy to pass in the general plugin data, especially as the "new" (which isn't so new anymore) plugin API allows this.
Where would this `user_data` get passed? When you call `_perform(..., user_data)`, the plugin won't know what to do with the data as it comes from Geany and it doesn't have any callback where it would pass it. The `_provided()` functions are synchronous and also don't know what to do with such data.