void TagManager::deleteTag(Tag* t) { std::cout<<"J'ai utilisé deleteTag()\n"; int i = getTagPos(t); for(unsigned int i=0;i<tabTags.size();i++) { Note* n = t->getNote(i); n->removeTag(t); } tabTags.removeAt(i); }
static void get_member_list (JSContext *my_cx) { GList *i; g_assert (my_cx != NULL); gint plen = strlen (PROTOTYPE); for (i = my_cx->local_var; i; i = g_list_next (i)) { gint len; gchar *tstr; Var *t = (Var *)i->data; if (!t->name) continue; len = strlen (t->name); if (len <= plen) continue; if (tstr = strstr (t->name, PROTOTYPE), tstr == NULL) continue; if (strlen (tstr) != plen) { //TODO:puts (t->name); //Make tag } else { JSNode *node = t->node; JSNode* iter; g_assert (node->pn_type == TOK_RC); for (iter = node->pn_u.list.head; iter != NULL; iter = iter->pn_next) { const gchar* name = js_node_get_name (iter->pn_u.binary.left); const JSTokenPos* pos = getTagPos (iter->pn_u.binary.left); if (!name) g_assert_not_reached (); else { gchar *rname = g_strndup (t->name, len - plen); if (g_strcmp0 (name, "__proto__") == 0 ) { GList *i; Type *t = js_context_get_node_type (my_cx, JS_NODE (iter->pn_u.binary.right)); if (!t || !t->name) continue; for (i = tags; i != NULL; i = g_list_next (i)) if (g_strcmp0 (((tagEntryInfo *)i->data)->name, rname) == 0) { gchar *tn = g_strdup (t->name), *tstr; if (tstr = strstr (tn, PROTOTYPE), tstr != NULL) { g_assert (strlen (tstr) == plen); *tstr = '\0'; } ((tagEntryInfo *)i->data)->extensionFields.inheritance = tn; break; } } else { tagEntryInfo *tag = (tagEntryInfo*)malloc (sizeof (tagEntryInfo)); symbols = g_list_append (symbols, g_strdup (name)); initTagEntry (tag, name); tag->isFileScope = 1; tag->kindName = "member"; tag->kind = 'm'; get_file_pos (pos->begin, &tag->filePosition, File.fp); tag->lineNumber = pos->begin; tag->extensionFields.scope[0]="class"; tag->extensionFields.scope[1]=rname; JSNode *node = (JSNode *)iter->pn_u.binary.right; if (node && node->pn_arity == PN_FUNC && node->pn_u.func.args) { gchar *str = NULL, *t; JSNode *i = node->pn_u.func.args; g_assert (i->pn_arity == PN_LIST); for (i = (JSNode *)i->pn_u.list.head; i; i = (JSNode *)i->pn_next) { const gchar *name; g_assert (i->pn_arity == PN_NAME); name = js_node_get_name (i); g_assert (name != NULL); if (str == NULL) str = g_strdup_printf ("( %s", name); else { t = g_strdup_printf ("%s, %s", str, name); g_free (str); str = t; } } t = g_strdup_printf ("%s)", str); g_free (str); str = t; tag->extensionFields.signature = str; } makeTagEntry (tag); } } } } } for (i = my_cx->childs; i; i = g_list_next (i)) { JSContext *t = (JSContext *)i->data; get_member_list (t); } }