[geany/geany] 137551: Move symbols_get_context_separator() implementation to TM

Jiří Techet git-noreply at xxxxx
Thu Feb 11 14:35:53 UTC 2016


Branch:      refs/heads/master
Author:      Jiří Techet <techet at gmail.com>
Committer:   Jiří Techet <techet at gmail.com>
Date:        Sun, 10 Jan 2016 11:31:47 UTC
Commit:      13755122f2c3193d6e630970ab3ec38dabe36f56
             https://github.com/geany/geany/commit/13755122f2c3193d6e630970ab3ec38dabe36f56

Log Message:
-----------
Move symbols_get_context_separator() implementation to TM

This way we can use it inside TM.


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

Modified: src/symbols.c
26 lines changed, 1 insertions(+), 25 deletions(-)
===================================================================
@@ -322,31 +322,7 @@ GString *symbols_find_typenames_as_string(gint lang, gboolean global)
 GEANY_API_SYMBOL
 const gchar *symbols_get_context_separator(gint ft_id)
 {
-	switch (ft_id)
-	{
-		case GEANY_FILETYPES_C:	/* for C++ .h headers or C structs */
-		case GEANY_FILETYPES_CPP:
-		case GEANY_FILETYPES_GLSL:	/* for structs */
-		/*case GEANY_FILETYPES_RUBY:*/ /* not sure what to use atm*/
-		case GEANY_FILETYPES_PHP:
-		case GEANY_FILETYPES_POWERSHELL:
-		case GEANY_FILETYPES_RUST:
-		case GEANY_FILETYPES_ZEPHIR:
-			return "::";
-
-		/* avoid confusion with other possible separators in group/section name */
-		case GEANY_FILETYPES_CONF:
-		case GEANY_FILETYPES_REST:
-			return ":::";
-
-		/* no context separator */
-		case GEANY_FILETYPES_ASCIIDOC:
-		case GEANY_FILETYPES_TXT2TAGS:
-			return "\x03";
-
-		default:
-			return ".";
-	}
+	return tm_tag_context_separator(filetypes[ft_id]->lang);
 }
 
 


Modified: tagmanager/src/tm_tag.c
30 lines changed, 30 insertions(+), 0 deletions(-)
===================================================================
@@ -17,6 +17,7 @@
 #include "read.h"
 #define LIBCTAGS_DEFINED
 #include "tm_tag.h"
+#include "tm_parser.h"
 
 
 #define TAG_NEW(T)	((T) = g_slice_new0(TMTag))
@@ -1167,6 +1168,35 @@ tm_get_current_tag (GPtrArray * file_tags, const gulong line, const TMTagType ta
 	return matching_tag;
 }
 
+const gchar *tm_tag_context_separator(langType lang)
+{
+	switch (lang)
+	{
+		case TM_PARSER_C:	/* for C++ .h headers or C structs */
+		case TM_PARSER_CPP:
+		case TM_PARSER_GLSL:	/* for structs */
+		/*case GEANY_FILETYPES_RUBY:*/ /* not sure what to use atm*/
+		case TM_PARSER_PHP:
+		case TM_PARSER_POWERSHELL:
+		case TM_PARSER_RUST:
+		case TM_PARSER_ZEPHIR:
+			return "::";
+
+		/* avoid confusion with other possible separators in group/section name */
+		case TM_PARSER_CONF:
+		case TM_PARSER_REST:
+			return ":::";
+
+		/* no context separator */
+		case TM_PARSER_ASCIIDOC:
+		case TM_PARSER_TXT2TAGS:
+			return "\x03";
+
+		default:
+			return ".";
+	}
+}
+
 #if 0
 /* Returns TMTag to function or method which "own" given line
  @param line Current line in edited file.


Modified: tagmanager/src/tm_tag.h
2 lines changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -191,6 +191,8 @@ TMTag *tm_tag_ref(TMTag *tag);
 
 gboolean tm_tags_equal(const TMTag *a, const TMTag *b);
 
+const gchar *tm_tag_context_separator(langType lang);
+
 #ifdef TM_DEBUG /* various debugging functions */
 
 const char *tm_tag_type_name(const TMTag *tag);


Modified: tagmanager/src/tm_workspace.c
5 lines changed, 1 insertions(+), 4 deletions(-)
===================================================================
@@ -857,10 +857,7 @@ find_scope_members (const GPtrArray *tags_array, GPtrArray *member_array,
 			{
 				gchar *tmp_name = type_name;
 
-				if (tag->file && tag->file->lang == TM_PARSER_JAVA)
-					type_name = g_strdup_printf("%s.%s", tag->scope, type_name);
-				else
-					type_name = g_strdup_printf("%s::%s", tag->scope, type_name);
+				type_name = g_strconcat(tag->scope, tm_tag_context_separator(lang), type_name, NULL);
 				g_free(tmp_name);
 			}
 			break;



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list