35#include <glib-object.h>
40#define TM_TAG(tag) ((TMTag *) tag)
73#define TAG_ACCESS_PUBLIC 'p'
74#define TAG_ACCESS_PROTECTED 'r'
75#define TAG_ACCESS_PRIVATE 'v'
76#define TAG_ACCESS_FRIEND 'f'
77#define TAG_ACCESS_DEFAULT 'd'
78#define TAG_ACCESS_UNKNOWN 'x'
81#define TAG_IMPL_VIRTUAL 'v'
82#define TAG_IMPL_UNKNOWN 'x'
108#define TM_TYPE_TAG (tm_tag_get_type())
118GPtrArray *
tm_tags_merge(GPtrArray *big_array, GPtrArray *small_array,
122 gboolean dedup, gboolean unref_duplicates);
131 gboolean partial, guint * tagCount);
147const char *tm_tag_type_name(
const TMTag *tag);
149TMTagType tm_tag_name_type(
const char* tag_name);
151void tm_tag_print(
TMTag *tag, FILE *fp);
153void tm_tags_array_print(GPtrArray *tags, FILE *fp);
155gint tm_tag_scope_depth(
const TMTag *t);
The TMSourceFile structure represents the source file and its tags in the tag manager.
The TMTag structure represents a single tag in the tag manager.
char * scope
Scope of tag.
char * inheritance
Parent classes.
char * var_type
Variable type (maps to struct for typedefs)
char * arglist
Argument list (functions/prototypes/macros)
TMSourceFile * file
These are tag attributes.
gulong line
Line number of the tag.
char access
Access type (public/protected/private/etc.)
char impl
Implementation (e.g.
gboolean local
Is the tag of local scope.
The TMSourceFile structure and associated functions are used to maintain tags for individual files.
const TMTag * tm_get_current_tag(GPtrArray *file_tags, const gulong line, const TMTagType tag_types)
GPtrArray * tm_tags_merge(GPtrArray *big_array, GPtrArray *small_array, TMTagAttrType *sort_attributes, gboolean unref_duplicates)
GPtrArray * tm_tags_extract(GPtrArray *tags_array, TMTagType tag_types)
void tm_tags_array_free(GPtrArray *tags_array, gboolean free_all)
void tm_tags_remove_file_tags(TMSourceFile *source_file, GPtrArray *tags_array)
TMTag ** tm_tags_find(const GPtrArray *tags_array, const char *name, gboolean partial, guint *tagCount)
TMTag * tm_tag_ref(TMTag *tag)
gboolean tm_tag_is_anon(const TMTag *tag)
void tm_tag_unref(TMTag *tag)
gboolean tm_tags_equal(const TMTag *a, const TMTag *b)
void tm_tags_prune(GPtrArray *tags_array)
void tm_tags_sort(GPtrArray *tags_array, TMTagAttrType *sort_attributes, gboolean dedup, gboolean unref_duplicates)
void tm_tags_dedup(GPtrArray *tags_array, TMTagAttrType *sort_attributes, gboolean unref_duplicates)
struct TMTag TMTag
The TMTag structure represents a single tag in the tag manager.
GType tm_tag_get_type(void) G_GNUC_CONST
Gets the GType for a TMTag.
TMTagAttrType
Tag Attributes.
@ tm_tag_attr_none_t
Undefined.
@ tm_tag_attr_vartype_t
Variable Type.
@ tm_tag_attr_max_t
Maximum value.
@ tm_tag_attr_name_t
Tag Name.
@ tm_tag_attr_pointer_t
Pointer type.
@ tm_tag_attr_file_t
File in which tag exists.
@ tm_tag_attr_pos_t
Byte position of tag in the file (Obsolete)
@ tm_tag_attr_scope_t
Scope of the tag.
@ tm_tag_attr_lang_t
Language (File tag only)
@ tm_tag_attr_access_t
Access type (public/protected/private)
@ tm_tag_attr_inheritance_t
Parent classes.
@ tm_tag_attr_inactive_t
Inactive file (File tag only, obsolete)
@ tm_tag_attr_impl_t
Implementation (e.g.
@ tm_tag_attr_local_t
If it has local scope.
@ tm_tag_attr_arglist_t
Argument list.
@ tm_tag_attr_line_t
Line number of tag.
@ tm_tag_attr_time_t
Modification time (File tag only)
@ tm_tag_attr_type_t
Tag Type.