web-dev-qa-db-ja.com

Geany:ヘッダーファイルをgeanyで開かない限り、構文の強調表示とオートコンプリートは機能しません

私は現在、GTKライブラリを使用するプログラムを書いています。

プログラムは正常にコンパイルおよび実行されます。

問題は-geanyはGTKヘッダーファイルにある構造体とメソッドを「知らない」ようです。

構造体は強調表示されず、オートコンプリート機能も提供されません。

私はいくつかの実験を行いました-私が自分のヘッダーファイルを#includeしている場合-それはそのファイルがgeanyで開かれている場合にのみオートコンプリートを行います。 stdlib.hやmath.hなどの他のstdヘッダーファイルでも問題ありませんが

これを修正するにはどうすればよいですか?

2
user1068446

私は今日これと同じ問題に遭遇しました。

geanyは、シンボルの有効なリストを取得する場所を知っている必要があるため、開いているすべてのファイルのソースを読み取るため、有用なシンボルリストが必要な場合は、プログラミングを開始する前に必要なすべてのヘッダーファイルを開く必要があります。

geanyがインクルードするヘッダーファイルを自動的に調べたい場合でも、プロジェクトに使用するgtkバージョン(gtk2、gtk3、...)を推測することはできません。

geanyはlightweigthであることを忘れないでください:-)

しかし、これが私の回避策です..(Linuxを使用していて、Shell、gccなどを使用していると思います)

仕事を成し遂げるために私はこれをしました:

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

(私はgtkバージョン3を使用していますが、ニーズに合わせてpkg-config行を調整します)

次に、プロジェクトファイルとgtk_headers.hを開きます。これにより、geanyは作業中のgtkライブラリのヘッダーをリッピングできます。

プロ:シンプル

短所:geanyで開くヘッダーは約1.6 MBO_oです

2
iuz