From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.help Subject: RE: IDE versus emacs Date: Fri, 19 Oct 2012 10:22:39 -0700 Message-ID: References: <83d30y87yi.fsf@gnu.org><83626q7zvk.fsf@gnu.org><87y5jl243r.fsf@gmail.com> <87pq4xbqup.fsf@wanadoo.es><87d30xatgo.fsf@wanadoo.es><20121006041754.GA30224@hysteria.proulx.com><83pq4w6q3j.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1350667410 27895 80.91.229.3 (19 Oct 2012 17:23:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 19 Oct 2012 17:23:30 +0000 (UTC) To: "'Sohail Somani'" , Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Oct 19 19:23:36 2012 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TPGID-00035n-61 for geh-help-gnu-emacs@m.gmane.org; Fri, 19 Oct 2012 19:23:29 +0200 Original-Received: from localhost ([::1]:42208 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TPGI5-0002Bp-AS for geh-help-gnu-emacs@m.gmane.org; Fri, 19 Oct 2012 13:23:21 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:50547) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TPGHw-0002Bd-5F for help-gnu-emacs@gnu.org; Fri, 19 Oct 2012 13:23:16 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TPGHu-00053B-Oi for help-gnu-emacs@gnu.org; Fri, 19 Oct 2012 13:23:12 -0400 Original-Received: from rcsinet15.oracle.com ([148.87.113.117]:28485) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TPGHu-000534-HV for help-gnu-emacs@gnu.org; Fri, 19 Oct 2012 13:23:10 -0400 Original-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93]) by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id q9JHN855032607 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 19 Oct 2012 17:23:09 GMT Original-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156]) by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id q9JHN7hv014923 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 19 Oct 2012 17:23:07 GMT Original-Received: from abhmt112.oracle.com (abhmt112.oracle.com [141.146.116.64]) by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id q9JHN7ci001460; Fri, 19 Oct 2012 12:23:07 -0500 Original-Received: from dradamslap1 (/10.159.217.151) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 19 Oct 2012 10:23:06 -0700 X-Mailer: Microsoft Office Outlook 11 In-Reply-To: Thread-Index: Ac2uFrv86V2xmImhTKOkgW6xtdNpJgAAHTOQ X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Source-IP: ucsinet21.oracle.com [156.151.31.93] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 1) X-Received-From: 148.87.113.117 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:87334 Archived-At: > No. tags is mostly horrible. I can only use it for finding > definition and even that, only sometimes. Modern C++ > codebases (lots of templates) just do not do well with tags. Not to disagree, but I would just like to point out where (I think) the real problem is. It is not with the Emacs tags mechanism or with the ability to look up and navigate among tags. It is with the generation of the TAGS file. Emacs tags can really be anything at all. The mechanism is quite general. The term "definition" is appropriate for most existing tags: what is indexed are in fact definitions of functions, structs, whatever. But that need not be the case. Really, anything at all can be indexed. And tags need not even be limited to programming languages - you could tag a thesaurus or Shakespeare's works in various ways, if you wanted to. So what's needed (again, just trying to clarify) are programs to generate tags (i.e. a TAGS file) that are appropriate for your use. No doubt the existing tag-generating programs (ctags, etags, ...) are too limited at present to index the kinds of things you and others would like. That's where I think the problem lies. And guess what? AFAIK, that has very little to do with Emacs (see below). Think of that as an opportunity (for Someone(TM)) to write a program that generates a more useful TAGS file for your context/environment. Once that's done, I expect that you will find the existing Emacs tags mechanism and navigation among your (appropriate) tags to be satisfactory. Yes, there are other limitations, which you hinted at by mentioning wanting to limit searches based on your current context. There is currently no way AFAIK to filter a set of candidate tags to those you might consider appropriate based on where you are currently. But that could be done, and it probably would not be difficult to do, depending on precisely what you mean. It is trivial to get hold of all of the tags matching your input and filter those - you just need to be able to define that filtering, based on your context and what you mean/want. That, at least, is an Emacs-Lisp job, unlike the rest of what I expect is needed for you. (Of course, prefiltering, i.e., limiting the tags to search before matching your input (presumably for better performance), could be more involved.) One design limitation of the tags mechanism is that a TAGS file is a static snapshot, which might not be up-to-date when you use it. Navigating to existing tag locations is typically not a problem, even if the file is not up-to-date. But being out of date means that it does not index thingies that were created after the file was generated, obviously. This is an inherent limitation, but of course the TAGS file can be regenerated on demand, provided users have the program to do so. The Emacs tags mechanism is pretty good, I think. The main thing that's missing for you is an up-to-date program that generates tags for the kinds of things you are interested in. That really has little to do with Emacs itself (depending on one's point of view), and it just awaits some interested programmer to get 'er done. To do that requires knowledge of your programming language (syntax, and semantics to some extent). And it requires general programming knowledge to write the program (e.g. a program somewhat like etags). And it requires knowledge of the TAGS file structure. And it requires some time and motivation. But AFAIK it does not really require any knowledge of Emacs or Emacs Lisp. That's why I say that it in fact has little to do with Emacs itself. Of course, Emacs _users_ like yourself will be grateful, once it's done. Since we see such complaints here from time to time, perhaps this task would make a good school, or summer of code, project. Dunno. One part of the task would be deciding just what it is that you would like to index, for what languages, etc. IOW, specify the requirements.