0

gtk-3.0 のタグの完全なリストを作成したいと考えています。

だから私はそれを試しました

ctags -R --c++-kinds=+p --fields=+iaS /usr/include/gtk-3.0/

動作しますが、リストは不完全です。たとえば、gtk_file_chooser_dialog_new がありませんが、/usr/include/gtk-3.0/gtk/gtkfilechooserdialog.h で確認できます。

GtkWidget *gtk_file_chooser_dialog_new (const gchar *title,
              GtkWindow            *parent,
              GtkFileChooserAction  action,
              const gchar          *first_button_text,
              ...) G_GNUC_NULL_TERMINATED;

だから私はこのファイルだけで試してみましたが、gtk_file_chooser_dialog_new はまだ見つかりません:

ctags --c++-kinds=+p --fields=+iaS /usr/include/gtk-3.0/gtk/gtkfilechooserdialog.h

これが生成されます: https://gist.github.com/3879327

前もってありがとう、クルペ

4

2 に答える 2

2

実際には、ctags/etags の互換性のある代替品としてGNU globalを試すことをお勧めします。あなたが説明しているように、同様の残念な結果を見つけた後、私はそれを使い始めました. 私は gtk-3.0.12 tarball に対してテストしました:

$ cd gtk+-3.0.12
$ gtags
$ global gtk_file_chooser_dialog_new
gtk/gtkfilechooserdialog.c

ドキュメントには、コード ベースからオブジェクトを参照するためにサポートされているエディターの例が示されています。のクイック バージョンは次のlessようになります。

$ export LESSGLOBALTAGS=global
$ less -t gtk_file_chooser_dialog_new
于 2012-10-12T17:42:56.037 に答える
1

いくつかのGTKマクロがあるため、Ctagsはメソッド宣言を無視します。

それらを無視するために引数を渡すと、問題が修正されます。

ctags -R --c++-kinds=+p --fields=+iaS -I G_GNUC_NULL_TERMINATED -I G_GNUC_CONST  -f gtk3 /usr/include/gtk-3.0/

おそらくもっとたくさんあるので、このリストは完全ではありませんが、418個のシンボルが追加されています。

于 2012-10-12T17:19:36.207 に答える