2010-05-31 7 views
8

Von dem, was ich von den Dokumenten erzählen kann, semantische Arbeiten, indem Sie langsam eine Idee von dem, was in Ihrem Projekt ist, aufbauen, indem Sie jede Datei (und möglicherweise ihre Nachbarn) analysieren, während Sie sie besuchen. Das ist zu langsam. Ich möchte es einfach alle Dateien in meinem Projekt besuchen lassen. Gibt es einen einfachen Weg, dies zu tun? Hunderte von Dateien zu besuchen, bevor ich anständig Autocomplete arbeiten kann, scheint verrückt.Ist es möglich, Semantic (Emacs) alle Dateien automatisch zu besuchen?

Ich habe auch eine Etags-Datei generiert. Kann ich das irgendwie nutzen?

Relevante Informationen: Emacs auf Windows, Version 23.2.1

+0

Warum schauen Sie sich stattdessen GCCSense (http://cx4a.org/software/gccsense/) an? –

+0

Bozhidar: Weißt du, ob das überhaupt mit Semantik/Cedet kollidieren wird? – Yktula

Antwort

7

cedet werden alle Dateien Referenzen über # include-Anweisungen automatisch analysieren, damit ziemlich gut Abschluss bietet. Wenn Sie in Ihren Dateien herumspringen möchten, können Sie CEDET so einrichten, dass GNU Global, CScope, verwendet wird, um die Datenbank zur Verfügung zu stellen, die benötigt wird, um sich in einem Projekt nach Tagnamen zu bewegen.

Darüber hinaus wird CEDET Ihre Kopfzeilen und Dateien in der Nähe im Leerlauf analysieren, so dass Sie in etwa 10 Minuten nach der ersten Verwendung der Tools eine vollständige Datenbank mit all Ihren lokalen Dateien haben. Sie können es beschleunigen, indem Sie eine Datei öffnen und

M-x semantic-debug-idle-work-function 

aufrufen, die abgehen und das Zeug tun, ohne zu warten.

+0

Danke, Eric. Ich habe jetzt die Leerlauffunktionen im Laufen. Ich vermute an dieser Stelle, dass ich kleine Probleme mit meinem Setup habe. Ich benutze die Emacs 23 integrierte Version von CEDET, daher enthalten alle Artikel zum Einrichten Dinge, die nicht mehr relevant oder möglich sind. Mit einfachen Testfällen kann ich Semantic nicht dazu bringen, etwas zu vervollständigen, außer den einfachsten In-File-Informationen (dh keine Membervariablen-Vervollständigung funktioniert). Ich werde auch GNU Global ausprobieren. Vielen Dank! – RealityMonster

1

Am Ende habe ich festgestellt, dass die beste Lösung ist, das Parsen der Dateien mit ein bisschen elisp manuell zu erzwingen. Die beste Antwort, die ich gefunden habe, ist here.