Add document_index(), filetypes_index() array accessor functions to
the plugin API. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3310 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
80b936037e
commit
5763dfbe2d
@ -8,6 +8,10 @@
|
||||
the geanyfunctions.h macro works.
|
||||
Deprecate p_sci->send_message().
|
||||
Add scintilla_new() to the plugin API.
|
||||
* src/plugindata.h, src/filetypes.c, src/filetypes.h, src/document.c,
|
||||
src/plugins.c, src/document.h, plugins/geanyfunctions.h:
|
||||
Add document_index(), filetypes_index() array accessor functions to
|
||||
the plugin API.
|
||||
|
||||
|
||||
2008-12-02 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
|
||||
|
@ -36,6 +36,8 @@ This allows the use of normal API function names in plugins. */
|
||||
p_document->set_filetype
|
||||
#define document_close \
|
||||
p_document->close
|
||||
#define document_index \
|
||||
p_document->index
|
||||
#define editor_get_indent_prefs \
|
||||
p_editor->get_indent_prefs
|
||||
#define editor_create_widget \
|
||||
@ -226,6 +228,8 @@ This allows the use of normal API function names in plugins. */
|
||||
p_filetypes->detect_from_file
|
||||
#define filetypes_lookup_by_name \
|
||||
p_filetypes->lookup_by_name
|
||||
#define filetypes_index \
|
||||
p_filetypes->index
|
||||
#define navqueue_goto_line \
|
||||
p_navqueue->goto_line
|
||||
#define main_reload_configuration \
|
||||
|
@ -2470,14 +2470,14 @@ GdkColor *document_get_status_color(GeanyDocument *doc)
|
||||
}
|
||||
|
||||
|
||||
/* useful debugging function (usually debug macros aren't enabled so can't use
|
||||
* documents[idx]) */
|
||||
#ifdef GEANY_DEBUG
|
||||
GeanyDocument *doc_at(gint idx)
|
||||
/** Accessor function for @ref GeanyData::documents_array items.
|
||||
* @warning Always check the returned document is valid (@c doc->is_valid).
|
||||
* @param idx @c documents_array index.
|
||||
* @return The document, or @c NULL if @a idx is out of range. */
|
||||
GeanyDocument *document_index(gint idx)
|
||||
{
|
||||
return (idx >= 0 && idx < (gint) documents_array->len) ? documents[idx] : NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* create a new file and copy file content and properties */
|
||||
|
@ -112,10 +112,8 @@ struct GeanyDocument
|
||||
extern GPtrArray *documents_array;
|
||||
|
||||
|
||||
/**
|
||||
* This wraps documents_array so it can be used with C array syntax.
|
||||
* Example: documents[0]->sci = NULL;
|
||||
**/
|
||||
/* Wrap documents_array so it can be used with C array syntax.
|
||||
* Example: documents[0]->sci = NULL; */
|
||||
#define documents ((GeanyDocument **)documents_array->pdata)
|
||||
|
||||
/** Check that the @a doc_ptr document still exists (has not been closed).
|
||||
@ -160,6 +158,8 @@ void document_set_text_changed(GeanyDocument *doc, gboolean changed);
|
||||
void document_set_filetype(GeanyDocument *doc, GeanyFiletype *type);
|
||||
|
||||
|
||||
GeanyDocument *document_index(gint idx);
|
||||
|
||||
GeanyDocument *document_find_by_sci(ScintillaObject *sci);
|
||||
|
||||
gint document_get_notebook_page(GeanyDocument *doc);
|
||||
|
@ -1432,3 +1432,14 @@ void filetypes_read_extensions(void)
|
||||
g_key_file_free(userconfig);
|
||||
}
|
||||
|
||||
|
||||
/** Accessor function for @ref GeanyData::filetypes_array items.
|
||||
* Example: @code ft = filetypes_index(GEANY_FILETYPES_C); @endcode
|
||||
* @param idx @c filetypes_array index.
|
||||
* @return The filetype, or @c NULL if @a idx is out of range. */
|
||||
GeanyFiletype *filetypes_index(gint idx)
|
||||
{
|
||||
return (idx >= 0 && idx < (gint) filetypes_array->len) ? filetypes[idx] : NULL;
|
||||
}
|
||||
|
||||
|
||||
|
@ -158,6 +158,8 @@ void filetypes_init_types(void);
|
||||
|
||||
void filetypes_read_extensions(void);
|
||||
|
||||
GeanyFiletype *filetypes_index(gint idx);
|
||||
|
||||
GeanyFiletype *filetypes_detect_from_document(GeanyDocument *doc);
|
||||
|
||||
GeanyFiletype *filetypes_detect_from_extension(const gchar *utf8_filename);
|
||||
|
@ -45,7 +45,7 @@
|
||||
enum {
|
||||
/** The Application Programming Interface (API) version, incremented
|
||||
* whenever any plugin data types are modified or appended to. */
|
||||
GEANY_API_VERSION = 114,
|
||||
GEANY_API_VERSION = 115,
|
||||
|
||||
/** The Application Binary Interface (ABI) version, incremented whenever
|
||||
* existing fields in the plugin data types have to be changed or reordered. */
|
||||
@ -246,6 +246,7 @@ typedef struct DocumentFuncs
|
||||
void (*set_text_changed) (struct GeanyDocument *doc, gboolean changed);
|
||||
void (*set_filetype) (struct GeanyDocument *doc, struct GeanyFiletype *type);
|
||||
gboolean (*close) (GeanyDocument *doc);
|
||||
struct GeanyDocument* (*index)(gint idx);
|
||||
}
|
||||
DocumentFuncs;
|
||||
|
||||
@ -452,6 +453,7 @@ typedef struct FiletypeFuncs
|
||||
{
|
||||
GeanyFiletype* (*detect_from_file) (const gchar *utf8_filename);
|
||||
GeanyFiletype* (*lookup_by_name) (const gchar *name);
|
||||
GeanyFiletype* (*index)(gint idx);
|
||||
/* Remember to convert any filetype_id arguments to GeanyFiletype pointers in any
|
||||
* appended functions */
|
||||
}
|
||||
|
@ -126,7 +126,8 @@ static DocumentFuncs doc_funcs = {
|
||||
&document_set_encoding,
|
||||
&document_set_text_changed,
|
||||
&document_set_filetype,
|
||||
&document_close
|
||||
&document_close,
|
||||
&document_index
|
||||
};
|
||||
|
||||
static EditorFuncs editor_funcs = {
|
||||
@ -268,10 +269,10 @@ static HighlightingFuncs highlighting_funcs = {
|
||||
&highlighting_get_style
|
||||
};
|
||||
|
||||
|
||||
static FiletypeFuncs filetype_funcs = {
|
||||
&filetypes_detect_from_file,
|
||||
&filetypes_lookup_by_name
|
||||
&filetypes_lookup_by_name,
|
||||
&filetypes_index
|
||||
};
|
||||
|
||||
static NavQueueFuncs navqueue_funcs = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user