コード例 #1
0
ファイル: database-symbol.c プロジェクト: VujinovM/anjuta
static IJsSymbol*
database_symbol_get_member (IJsSymbol *obj, const gchar * name)
{
	DatabaseSymbol* self = DATABASE_SYMBOL (obj);
	DatabaseSymbolPrivate *priv = DATABASE_SYMBOL_PRIVATE (self);

	if (!name || strlen (name) == 0)
	{
		g_object_ref (priv->local);
		return IJS_SYMBOL (priv->local);
	}

	GList *i;
	for (i = priv->symbols; i; i = g_list_next (i))
	{
		IJsSymbol *t = IJS_SYMBOL (i->data);
		if (strncmp (name, ijs_symbol_get_name (t), strlen (ijs_symbol_get_name (t))) != 0 )
			continue;
		if (strlen (name + strlen (ijs_symbol_get_name (t))) == 0)
		{
			g_object_ref (t);
			return t;
		}
		return find (name + strlen (ijs_symbol_get_name (t)) + 1, t);
	}

	IJsSymbol *ret = find (name, IJS_SYMBOL (priv->local));
	if (!ret)
		ret = find (name, IJS_SYMBOL (priv->global));

	return ret;
}
コード例 #2
0
ファイル: database-symbol.c プロジェクト: VujinovM/anjuta
static GList*
database_symbol_list_member (IJsSymbol *obj)
{
	DatabaseSymbol* self = DATABASE_SYMBOL (obj);
	DatabaseSymbolPrivate *priv = DATABASE_SYMBOL_PRIVATE (self);

	GList *ret = NULL;
	ret = ijs_symbol_list_member (IJS_SYMBOL (priv->global));
	if (priv->local)
		ret = g_list_concat (ret, ijs_symbol_list_member (IJS_SYMBOL (priv->local)));
	ret = g_list_append (ret, g_strdup ("imports"));
	return ret;
}
コード例 #3
0
ファイル: database-symbol.c プロジェクト: VujinovM/anjuta
GList*
database_symbol_list_member_with_line (DatabaseSymbol *object, gint line)
{
	g_assert (DATABASE_IS_SYMBOL (object));
	DatabaseSymbolPrivate *priv = DATABASE_SYMBOL_PRIVATE (object);

	GList *ret = NULL;
	ret = ijs_symbol_list_member (IJS_SYMBOL (priv->global));
	if (priv->local)
		ret = g_list_concat (ret, local_symbol_list_member_with_line (priv->local, line));
	ret = g_list_append (ret, g_strdup ("imports"));
	return ret;
}
コード例 #4
0
ファイル: node-symbol.c プロジェクト: abderrahim/anjuta
static IJsSymbol*
node_symbol_get_member (IJsSymbol *obj, const gchar * name)
{
	NodeSymbol* self = NODE_SYMBOL (obj);
	NodeSymbolPrivate *priv = NODE_SYMBOL_PRIVATE(self);

	gchar *tname = get_complex_node_type (priv->node, priv->my_cx);
	if (!tname)
		return NULL;

	if (js_context_get_member_list (priv->my_cx, tname)) //TODO:Fix mem leak
	{
			return IJS_SYMBOL (
				node_symbol_new (js_context_get_member (priv->my_cx, tname, name),
									name, priv->my_cx));
	}
	IJsSymbol *t = global_search (tname);
	if (t)
		return ijs_symbol_get_member (t, name);

	return NULL;
}