From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?iso-8859-1?B?Tm9yZGz2dw==?= Newsgroups: gmane.emacs.help Subject: I have a dream... about tags Date: Tue, 04 Sep 2007 10:57:24 -0000 Organization: http://groups.google.com Message-ID: <1188903444.115274.22100@57g2000hsv.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Trace: sea.gmane.org 1188906047 26282 80.91.229.12 (4 Sep 2007 11:40:47 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 4 Sep 2007 11:40:47 +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 13:40:44 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 1ISWlo-0006Gj-8h for geh-help-gnu-emacs@m.gmane.org; Tue, 04 Sep 2007 13:40:36 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ISWlm-000503-Ft for geh-help-gnu-emacs@m.gmane.org; Tue, 04 Sep 2007 07:40:34 -0400 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!postnews.google.com!57g2000hsv.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 54 Original-NNTP-Posting-Host: 150.227.15.253 Original-X-Trace: posting.google.com 1188903444 24465 127.0.0.1 (4 Sep 2007 10:57:24 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Tue, 4 Sep 2007 10:57:24 +0000 (UTC) User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty),gzip(gfe),gzip(gfe) X-HTTP-Via: 1.1 netcache (NetCache NetApp/6.1.1RC1) Complaints-To: groups-abuse@google.com Injection-Info: 57g2000hsv.googlegroups.com; posting-host=150.227.15.253; posting-account=ps2QrAMAAAA6_jCuRt2JEIpn5Otqf_w0 Original-Xref: shelby.stanford.edu gnu.emacs.help:151667 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:47193 Archived-At: 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. etags can however do this. It also has a rather annoying bug that makes the indexer skip inline functions in files containing the standard construct #ifdef __cplusplus extern "C" { #endif I have already contacted the maintainer of GNU GLOBAL about this problem, but it seems like other todos are more imporant. 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). Nor does it index static variables. I also haven't found a way to lookup all uses (calls) of a structure, variable or function, which gtags can do. 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... Thanks, Nordl=F6w