Search code examples
linuxgtkctags

ctags doesn't find all gtk methods


I want to create a complete list of tags for gtk-3.0.

So I tried it with

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

It works, but the list is incomplete. e.g. gtk_file_chooser_dialog_new is missing, but I definitely can see it in /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;

So I tried with this file only, and there is still no gtk_file_chooser_dialog_new to be found:

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

And this is generated: https://gist.github.com/3879327

thanks in advance, kulpae


Solution

  • I would actually recommend trying GNU global as a compatible replacement for ctags/etags. I started using it after finding similar disappointing results much like you are describing. I tested against a gtk-3.0.12 tarball:

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

    The documentation shows examples for supported editors for browsing the objects from the code base. A quick version with less would look like this:

    $ export LESSGLOBALTAGS=global
    $ less -t gtk_file_chooser_dialog_new