[Geany] Plugin Events Patch
blackdog
blackdog at xxxxx
Wed Aug 1 16:40:44 UTC 2007
Ah yes, I catch you now, in the plugin you mean, ok, i was one level up.
bd
On Wed, 01 Aug 2007 17:37:19 +0100
Nick Treleaven <nick.treleaven at btinternet.com> wrote:
> On 08/01/2007 05:18:22 PM, blackdog wrote:
> >
> > Hi Nick
> >
> > Houw about this called from editor.c as per your last email? Haven't
> > compiled it. So all the other events get their own if statement in
> > there or somesuch.
> >
> No, I mean to save maintenance and a lot of possible symbols to
> lookup each time a plugin is loaded, just have one symbol,
> on_sci_notify(). It is passed the SCNotification argument whenever
> on_editor_notification() receives a notification in editor.c, so it
> can determine which messages it wants to respond to. This would save
> a lot of extra code in the plugin API.
>
> ---
>
> > // callback func called by all editors when a signal arises
> > void on_plugin_notification(GtkWidget *editor, gint scn,struct
> > SCNotification *nt, gint idx) {
> > GList *item;
> >
> > ScintillaObject *sci = doc_list[idx].sci;
> > int event = nt->nmhdr.code;
> > for (item = plugin_list; item != NULL; item =
> > g_list_next(item))
> > {
> > Plugin *plugin = item->data;
> >
> > if (plugin->on_char_added && event ==
> > SCN_CHARADDED) { plugin->on_char_added(sci,ch);
> > }
> > }
> > }
> >
> >
> > bd
> >
> > On Wed, 01 Aug 2007 16:28:39 +0100
> > Nick Treleaven <nick.treleaven at btinternet.com> wrote:
> >
> > > On 08/01/2007 02:38:53 PM, blackdog wrote:
> > > >
> > > > Hi there
> > > >
> > > > So here's a patch tested against r 1767 which adds a single
> > > > onCharAdded
> > > > event for plugins that implement onCharAdded().
> > > >
> > > > This is experimental and is really for you to comment on, if
> > > > it's
> > ok
> > > > by
> > > > you I'll add the other events.
> > > >
> > > Thanks, but IMO it could be done a bit differently. (I didn't have
> > > time to reply to your previous message about this, sorry).
> > >
> > > I would prefer it to be done in a way that had less changes to the
> > > core
> > > - really I think the plugin API should be kept quite lean.
> > > Because
> > I
> >
> > > think you might want other callbacks besides onCharAdded, perhaps
> > it
> >
> > > would be best to have a single on_sci_notify() plugin callback
> > > (we don't really use CamelCase for function names, only
> > > typenames ;-)).
> > >
> > > Then something like:
> > >
> > > // callback func called by all editors when a signal arises
> > > void on_editor_notification(GtkWidget *editor, gint scn, gpointer
> > > lscn, gpointer user_data)
> > > {
> > > SCNotification *nt;
> > > ScintillaObject *sci;
> > > gint idx;
> > >
> > > idx = GPOINTER_TO_INT(user_data);
> > > sci = doc_list[idx].sci;
> > >
> > > nt = lscn;
> > >
> > > plugins_sci_notify(editor, scn, nt, idx);
> > >
> > > Where plugins_sci_notify() calls any plugin that has an
> > on_sci_notify
> > > symbol.
> > >
> > > Also, I'm assuming that this notification doesn't slow down Geany
> > (I
> >
> > > guess it shouldn't though). I'm also wondering about replacing
> > > plugin_list GList with a GPtrArray, which could speed up things
> > > if necessary.
> > >
>
> Regards,
> Nick
>
> _______________________________________________
> Geany mailing list
> Geany at uvena.de
> http://uvena.de/cgi-bin/mailman/listinfo/geany
--
http://www.blackdog-haxe.com/
"It is no measure of health to be well adjusted to a profoundly sick
society." --Jiddu Krishnamurti
--
http://www.blackdog-haxe.com/
"It is no measure of health to be well adjusted to a profoundly sick
society." --Jiddu Krishnamurti
More information about the Users
mailing list