Geany: Syntax-Highlighting und Autocomplete funktionieren nur, wenn die Header-Datei in geany geöffnet ist

3365
user1068446

Ich schreibe gerade ein Programm, das die GTK-Bibliothek verwendet.

Die Programme werden kompiliert und laufen einwandfrei.

Das Problem ist, dass geany anscheinend nicht weiß, welche Strukturen und Methoden in der GTK-Header-Datei enthalten sind.

Es wird keine Strukturen hervorheben und bietet keine Funktionen zur automatischen Vervollständigung.

Ich habe ein wenig experimentiert - wenn ich # meine eigenen Header-Dateien mit einbeziehe -, wird die automatische Vervollständigung nur durchgeführt, wenn diese Datei in geany geöffnet ist. Obwohl es für andere std-Header-Dateien wie stdlib.h und math.h in Ordnung ist

Was muss ich tun, um das Problem zu beheben?

2

1 Antwort auf die Frage

2
iuz

Ich habe heute das gleiche Problem angetroffen ..

geany muss wissen, wo er nach einer gültigen Liste von Symbolen suchen muss. Er liest also die Quellen aller geöffneten Dateien. Wenn Sie also eine nützliche Symbolliste benötigen, sollten Sie alle Header-Dateien öffnen, die Sie benötigen, bevor Sie mit der Programmierung beginnen.

Auch wenn meany automatisch in die Header-Dateien schauen möchte, die Sie einschließen, kann nicht erraten werden, welche gtk-Version Sie für Ihr Projekt verwenden möchten (gtk2, gtk3, ...) ..

denk dran, dass geany lichtweigth ist :-)

aber hier ist mein Workaround .. (Ich denke, Sie sind auf Linux und haben eine Shell, Gcc usw.)

Um die Arbeit zu erledigen, habe ich Folgendes getan:

echo "#include <gtk/gtk.h>" > gtk_headers.c gcc -E gtk_headers.c `pkg-config gtk+-3.0 --cflags --libs` -o gtk_headers.h 

(ich arbeite mit gtk version 3, passt die pkg-config-linie an ihre bedürfnisse an)

dann öffne ich meine Projektdateien und gtk_headers.h, auf diese Weise kann geany die Header der gtk-Bibliothek zerreißen, an der ich gerade arbeite.

Pro: einfach

Minuspunkte: Die Kopfzeilen, die ich in geany öffne, sind ~ 1,6 MB