2010-04-08 4 views
11

Ich habe CEDET für Emacs nach Alex article konfiguriert (groß !!). Jetzt , die Fragen:Emacs, Cedet und semantische

  1. Ich habe generiert GTAGS mit Gnu Global in meinem /usr/include, wie kann ich überprüfen, ob semantischen GTAGS verwendet?
  2. Kann ich meine GTAGS in einem anderen Verzeichnis behalten und Semantik anweisen, dieses Verzeichnis zu verwenden?
  3. In C/C++ - Quellen führt die Vervollständigung der Include-Anweisung (aus dem System Header) nicht alle verfügbaren Header auf. Ok, das ist eine dumme Problem .. aber macht mich denken, etwas nicht richtig funktioniert

Antwort

16

Sie den Befehl verwenden können:

M-x semantic-c-describe-environment RET 

, um sich über Ihren Weg und CPP Makroeinstellungen umfassen.

GNU Globale Verwendung Um zu testen, können Sie verwenden:

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

für "printf" in in einem Projekt zu suchen. Da Ihr Projekt (vielleicht in/home/you/myproject) printf nicht enthält, schlägt es fehl, aber wenn Sie eine Datei in/usr/include geöffnet haben und denselben Befehl ausgeführt haben, wird hoffentlich printf identifiziert.

Eine allgemeinere Art und Weise über GNU Global zu fragen ist mit:

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

Das alles gesagt, die GNU globale Unterstützung in Situationen am besten ist, wo man viele, viele preparsed Dateien haben wollen, die Sie selten zugreifen . Sobald auf einen Header einmal zugegriffen wird (wie für printf), wird die GNU Global-Datenbank nicht mehr verwendet, da eine entsprechende semantische Datenbank dafür erstellt wurde. Dies ist notwendig, da GNU Global nicht genügend Informationen für die intelligente Vervollständigung bereitstellt.