From: Scott Frazer <frazer.scott@gmail.com>
To: help-gnu-emacs@gnu.org
Subject: Re: I have a dream... about tags
Date: Tue, 04 Sep 2007 09:39:50 -0400 [thread overview]
Message-ID: <1188913190.858463@sj-nntpcache-3.cisco.com> (raw)
In-Reply-To: <1188903444.115274.22100@57g2000hsv.googlegroups.com>
Nordlöw wrote:
> I have a dream...
>
> I have been using gtags (GNU GLOBAL) for some time now. The problem
> with gtags is that is does not handle C++ namespaces, that is you
> can't lookup ClassName::member just by entering this language
> construct from the minibuffer.
[snip]
> etags can however lookup such ClassName::member C++ constructs, which
> is great. But, for what I have seen, etags has other deficiencies. It
> doesn't handle lookups of symbols that have multiple definitions
> (occur multiple times and/or in different files/functions).
Sure it does. Besides tags-loop-continue, see:
http://www.emacswiki.org/cgi-bin/wiki/EtagsSelect
> Nor does it index static variables.
Try using this, it's much more thorough:
http://ctags.sourceforge.net/
> I also haven't found a way to lookup all
> uses (calls) of a structure, variable or function, which gtags can do.
I find recursive grep good enough for that.
> Has anyone else also found these problems annoying, and perhaps found
> some solutions to them? Are there alternatives to etags or gtags that
> solves these problems?
>
> Personally, what I really think Emacs needs is a unified way to reach
> *all* parts of your content in your project, regardless of whether
> they occur multiple times, are static in C, private in C++, etc. Al
> this should be reachable from a single interaction in the minibuffer,
> of course with completion. These are the main categories of patterns
> that I thinks should be possible to enter in my unified version of
> find-tag that I am day-dreaming about:
>
> C_Struct::struct_member_x
> C_Union::union_member_x
> C_Enum::enum_member_x
>
> Cpp_class::member_function()
>
> <some-file.h>::function_declaration()
> <some-file.h>::inline_function_definition()
> <some-file.c>::function_definition()
> <some-file.c>::function_definition()::local_variable
> <first-file.c>::commonly_named_global_variable
> <second-file.c>::commonly_named_global_variable
>
> As you can see the scope operator :: is thereby also used to reach
> file- and/or function- local content.
>
> I have a dream...
Try the above suggestions, maybe you can get close enough :)
Scott
next prev parent reply other threads:[~2007-09-04 13:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-04 10:57 I have a dream... about tags Nordlöw
2007-09-04 13:39 ` Scott Frazer [this message]
2007-09-04 15:49 ` Tom Tromey
2007-09-04 20:17 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1188913190.858463@sj-nntpcache-3.cisco.com \
--to=frazer.scott@gmail.com \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.