Update:

Matthew has pointed out on IRC that the markers and indicators are per
scintilla object, not global.  He has a suggested alternative API which he
will post after its tested.

Cheers
Lex


On 5 April 2013 13:09, Lex Trotman <ele...@gmail.com> wrote:

> There are several plugins that share limited resources, such as scintilla
> markers and indicators.
>
> At the moment there is no coordination for using those resources so
> plugins can interfere with one another and possibly with Geany.
>
> The only common thing between plugins and Geany is Geany, so this is a
> proposal to add a resources management interface to Geany.
>
> The proposed interface is below, I have tried to make it so it is easy to
> expand to resources that are not integers (markers and indicators are all
> integers)
>
> enum resource_type { GEANY_RESOURCE_MARKER, GEANY_RESOURCE_INDICATOR };
> gboolean alloc_int_resource( enum resource_type, int* resource_num );
> void free_int_resource( int resource_num );
>
> This allows extra resources to be added without ABI changes (so long as
> they are added to the end of the enum).
>
> If (when) other types of resource need managing then extra functions can
> be added again without breaking the ABI.
>
> Automatic release is not suggested because that prevents use of RAII and
> similar management schemes in C++ or GC for other plugin languages.  For
> plain C plugins just call free_int_resource in the plugin_cleanup function.
>
> Any simpler, more flexible suggestions?
>
> Cheers
> Lex
>
_______________________________________________
Devel mailing list
Devel@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/devel

Reply via email to