From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Scott Frazer Newsgroups: gmane.emacs.help Subject: Re: I have a dream... about tags Date: Tue, 04 Sep 2007 09:39:50 -0400 Organization: Ye 'Ol Disorganized NNTPCache groupie Message-ID: <1188913190.858463@sj-nntpcache-3.cisco.com> References: <1188903444.115274.22100@57g2000hsv.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Trace: sea.gmane.org 1188913354 19151 80.91.229.12 (4 Sep 2007 13:42:34 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 4 Sep 2007 13:42:34 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Sep 04 15:42:33 2007 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1ISYfY-0000x1-W9 for geh-help-gnu-emacs@m.gmane.org; Tue, 04 Sep 2007 15:42:17 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ISYfX-0005G1-HM for geh-help-gnu-emacs@m.gmane.org; Tue, 04 Sep 2007 09:42:15 -0400 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!postnews.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!elnk-atl-nf1!newsfeed.earthlink.net!bigfeed2.bellsouth.net!news.bellsouth.net!hwmnpeer01.phx!news.highwinds-media.com!hw-filter.phx!newsfe08.phx.POSTED!53ab2750!not-for-mail User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) Original-Newsgroups: gnu.emacs.help In-Reply-To: <1188903444.115274.22100@57g2000hsv.googlegroups.com> Cache-Post-Path: sj-nntpcache-3.cisco.com!unknown@scfrazer-wxp.cisco.com X-Cache: nntpcache 3.0.2 (see http://www.nntpcache.com/) Original-Lines: 63 Original-NNTP-Posting-Host: 171.70.140.16 Original-X-Complaints-To: newsadmin@cisco.com Original-X-Trace: newsfe08.phx 1188913190 171.70.140.16 (Tue, 04 Sep 2007 06:39:50 MST) Original-NNTP-Posting-Date: Tue, 04 Sep 2007 06:39:50 MST Original-Xref: shelby.stanford.edu gnu.emacs.help:151673 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:47198 Archived-At: 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() > > ::function_declaration() > ::inline_function_definition() > ::function_definition() > ::function_definition()::local_variable > ::commonly_named_global_variable > ::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