我想为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
提前感谢,kulpae
答案 0 :(得分:2)
我实际上建议尝试GNU global作为ctags / etags的兼容替代品。我在找到类似令人失望的结果后开始使用它,就像你描述的那样。我测试了gtk-3.0.12 tarball:
$ cd gtk+-3.0.12
$ gtags
$ global gtk_file_chooser_dialog_new
gtk/gtkfilechooserdialog.c
文档显示examples for supported editors用于从代码库中浏览对象。 less
的快速版本如下所示:
$ export LESSGLOBALTAGS=global
$ less -t gtk_file_chooser_dialog_new
答案 1 :(得分: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个符号。