Emacs / CEDET. Mehrere Projekte und Code-Vervollständigung

8

Ich habe emacs 23.1.50.1 mit CEDET 1.0 und ECB 2.40 eingerichtet (stark inspiriert von Alex Otts Setup unter Ссылка und seine sanfte Einführung in Cedet ( Ссылка ), danke Alex). Es funktioniert ziemlich gut, aber ich brauche mehr Verständnis darüber, wie Code-Vervollständigung und Symbol-Referenzen behandelt werden, wenn Sie mit mehreren Projekten arbeiten.

Ich habe ein einfaches ede-Projekt wie dieses erstellt:

%Vor%

Wird Semantic nach dem Laden des Projekts nur nach Vervollständigungen in den verschiedenen Verzeichnissen suchen, die in den Projektkonfigurationen angegeben sind?

Ich folgte Ссылка , um cscope als Backend für semanticdb zu verwenden. Ich kann semanticdb-enable-cscope-in-buffer ausführen, ohne dass emacs irgendwelche Fehler wirft, aber ich habe keine Ahnung, ob semantic meine Datenbank benutzt. Kann ich in meiner Projektdefinition auch einen Verweis auf eine cscope.out hinzufügen, um mehr Kontrolle darüber zu haben, welche Dateien in meinem aktuellen Kontext nach Referenzen suchen?

Ein paar Kuriositäten:

Wenn ich versuche, eine neue Quelldatei zu öffnen, bekomme ich den Fehler "apply: Suche nach Programm: keine solche Datei oder Verzeichnis, global" und nichts passiert. Wenn ich versuche, es wieder zu öffnen, ist alles in Ordnung.

Wenn ich versuche, ein Projekt zu laden, indem ich auf die Ankerdatei zeige, erhalte ich folgende Fehlermeldung: "if: Argument des falschen Typs: class-p, ede-cpp-root"

    
anr78 20.10.2010, 11:44
quelle

1 Antwort

5

Wenn Sie Fehler in Ihrer Konfiguration bekommen, ist das Beste:

%Vor%

und holen Sie sich den Stack-Trace, der auf den Problembereich zeigt. Oft ist dies hilfreich bei der Identifizierung des Konfigurationsproblems.

CEDET versucht, jede Datei mit einem einzelnen Projekt zu verknüpfen, und alle Befehle, die in diesem Puffer ausgeführt werden, sind auf die Grenzen dieses Projekts beschränkt. Für die CScope-Unterstützung wird es ebenfalls EDE verwenden, um das Stammverzeichnis zu identifizieren, und es wird dabei helfen, die Datei cscope.out zu finden, die sowohl mit den Vervollständigungs- als auch mit den Referenzwerkzeugen in Verbindung steht.

Die Ausnahme ist natürlich der System-Include-Pfad, der normalerweise / usr / include oder was auch immer ist. Dies ist eine Erweiterung des Standardsystem-Include-Pfades, der mit der GCC-Unterstützung berechnet wird. In einer deiner C-Dateien kannst du:

%Vor%

und das sollte zeigen, was Semantic verwenden wird.

Um zu überprüfen, ob CScope für die Codevervollständigung verwendet wird, können Sie Folgendes überprüfen:

%Vor%

und überprüfen Sie das Ende der Liste für einige CScope Sache.

    
Eric 21.10.2010, 01:37
quelle

Tags und Links