[geany/geany] d83bd4: Add tm_get_current_tag()

Colomban Wendling git-noreply at xxxxx
Mon Sep 17 18:07:45 UTC 2012


Branch:      refs/heads/master
Author:      Colomban Wendling <ban at herbesfolles.org>
Committer:   Colomban Wendling <ban at herbesfolles.org>
Date:        Mon, 17 Sep 2012 18:07:45
Commit:      d83bd409388313503dcad58cb6d601bf92e64fbc
             https://github.com/geany/geany/commit/d83bd409388313503dcad58cb6d601bf92e64fbc

Log Message:
-----------
Add tm_get_current_tag()


Modified Paths:
--------------
    tagmanager/src/tm_workspace.c
    tagmanager/src/tm_workspace.h

Modified: tagmanager/src/tm_workspace.c
23 files changed, 15 insertions(+), 8 deletions(-)
===================================================================
@@ -733,30 +733,37 @@ static gboolean match_langs(gint lang, const TMTag *tag)
 
 
 const TMTag *
-tm_get_current_function (GPtrArray * file_tags, const gulong line)
+tm_get_current_tag (GPtrArray * file_tags, const gulong line, const guint tag_types)
 {
-	GPtrArray *const local = tm_tags_extract (file_tags, tm_tag_function_t | tm_tag_method_t);
-	TMTag *function_tag = NULL;
+	GPtrArray *const local = tm_tags_extract (file_tags, tag_types);
+	TMTag *matching_tag = NULL;
 	if (local && local->len)
 	{
 		guint i;
-		gulong function_line = 0;
+		gulong matching_line = 0;
 		glong delta;
 
 		for (i = 0; (i < local->len); ++i)
 		{
 			TMTag *tag = TM_TAG (local->pdata[i]);
 			delta = line - tag->atts.entry.line;
-			if (delta >= 0 && (gulong)delta < line - function_line)
+			if (delta >= 0 && (gulong)delta < line - matching_line)
 			{
-				function_tag = tag;
-				function_line = tag->atts.entry.line;
+				matching_tag = tag;
+				matching_line = tag->atts.entry.line;
 			}
 		}
 	}
 	if (local)
 		g_ptr_array_free (local, TRUE);
-	return function_tag;
+	return matching_tag;
+}
+
+
+const TMTag *
+tm_get_current_function (GPtrArray * file_tags, const gulong line)
+{
+	return tm_get_current_tag (file_tags, line, tm_tag_function_t | tm_tag_method_t);
 }
 
 


Modified: tagmanager/src/tm_workspace.h
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -152,6 +152,13 @@ const GPtrArray *tm_workspace_find_scope_members(const GPtrArray *file_tags,
 tm_workspace_find_namespace_members (const GPtrArray * file_tags, const char *name,
                                      gboolean search_global);
 
+/* Returns TMTag which "own" given line
+ \param line Current line in edited file.
+ \param file_tags A GPtrArray of edited file TMTag pointers.
+ \param tag_types the tag types to include in the match
+ \return TMTag pointers to owner tag. */
+const TMTag *tm_get_current_tag(GPtrArray *file_tags, const gulong line, const guint tag_types);
+
 /* Returns TMTag to function or method which "own" given line
  \param line Current line in edited file.
  \param file_tags A GPtrArray of edited file TMTag pointers.


@@ Diff output truncated at 100000 characters. @@


--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).



More information about the Commits mailing list