2010-04-08 6 views
11

J'ai configuré CEDET pour emacs suivant Alex article (génial !!). Maintenant, les questions suivantes:Emacs, Cedet et sémantique

  1. J'ai produit GTAGS avec Gnu mondiale dans mon /usr/include, comment puis-je vérifier si sémantique utilise GTAGS? Puis-je conserver mes GTAGS dans un autre répertoire et demander à la sémantique d'utiliser ce répertoire?
  2. Dans les sources C/C++, l'achèvement sur l'instruction include (à partir des en-têtes système ) ne répertorie pas tous les en-têtes disponibles. Ok, c'est un problème stupide .. mais me fait penser à quelque chose ne fonctionne pas correctement

Répondre

16

Vous pouvez utiliser la commande:

M-x semantic-c-describe-environment RET 

en savoir plus sur le chemin d'inclusion et les paramètres macro RPC.

Pour tester l'utilisation GNU Global, vous pouvez utiliser:

M-x semanticdb-test-gnu-global RET printf RET 

pour rechercher "printf" dans une certaine projet. Puisque votre projet (peut-être dans/home/you/myproject) ne contient pas printf, il échouera, mais si vous avez ouvert un fichier dans/usr/include et que vous avez fait la même commande, il identifiera printf.

Une façon plus générale poser des questions sur GNU Global est avec:

M-x cedet-gnu-global-version-check RET 

Que tous dit, le soutien mondial GNU est le mieux dans les situations où vous voulez avoir beaucoup, beaucoup de fichiers preparsed que vous accédez souvent . Une fois qu'un en-tête est accédé une fois (comme pour printf), alors la base de données GNU Global ne sera plus utilisée, car une base de données sémantique équivalente aura été créée pour cela. Ceci est nécessaire car GNU Global ne fournit pas suffisamment d'informations pour effectuer une complétion intelligente.