From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stephen Leake Newsgroups: gmane.emacs.devel Subject: Re: Generalizing find-definition Date: Thu, 04 Dec 2014 10:19:58 -0600 Message-ID: <85zjb3o09d.fsf@stephe-leake.org> References: <20141102151524.0d9c665c@forcix> <20141117211039.37f03409@forcix> <877fymghgb.fsf@bredband.net> <85ppc0qf9a.fsf@stephe-leake.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1417710070 20778 80.91.229.3 (4 Dec 2014 16:21:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 4 Dec 2014 16:21:10 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Dec 04 17:21:03 2014 Return-path: Envelope-to: ged-emacs-devel@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 1XwZ9K-0004dh-EC for ged-emacs-devel@m.gmane.org; Thu, 04 Dec 2014 17:21:02 +0100 Original-Received: from localhost ([::1]:46510 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XwZ9J-0004LV-Jj for ged-emacs-devel@m.gmane.org; Thu, 04 Dec 2014 11:21:01 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60107) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XwZ8W-0004Ki-NN for emacs-devel@gnu.org; Thu, 04 Dec 2014 11:20:20 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XwZ8N-0007IV-Bv for emacs-devel@gnu.org; Thu, 04 Dec 2014 11:20:12 -0500 Original-Received: from dnvrco-outbound-snat.email.rr.com ([107.14.73.231]:3148 helo=dnvrco-oedge-vip.email.rr.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XwZ8N-0007FB-6I for emacs-devel@gnu.org; Thu, 04 Dec 2014 11:20:03 -0500 Original-Received: from [70.94.38.149] ([70.94.38.149:49782] helo=TAKVER) by dnvrco-oedge03 (envelope-from ) (ecelerity 3.5.0.35861 r(Momo-dev:tip)) with ESMTP id F3/E2-01361-FA980845; Thu, 04 Dec 2014 16:20:00 +0000 In-Reply-To: (Helmut Eller's message of "Thu, 04 Dec 2014 10:11:36 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.94 (windows-nt) X-RR-Connecting-IP: 107.14.64.142:25 X-Authority-Analysis: v=2.1 cv=Zu9jKrLG c=1 sm=1 tr=0 a=AppmJ/7ZOOFWL/q6u6u93g==:117 a=AppmJ/7ZOOFWL/q6u6u93g==:17 a=ayC55rCoAAAA:8 a=fNEgcOh0sVsA:10 a=9i_RQKNPAAAA:8 a=pGLkceISAAAA:8 a=DLNjlMxwI43Y60agVt8A:9 X-Cloudmark-Score: 0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 107.14.73.231 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:178833 Archived-At: Helmut Eller writes: > On Wed, Dec 03 2014, Stephen Leake wrote: > > [...] >> A couple comments: >> >> The current copyright on xref.el is Helmut Eller; I assume you've got a >> copyright assignment on file. > > Yes, I have the paperwork. > >> I'd like to add to xref.el: >> >> (defun xref-find-definition-at-point () >> (interactive) >> (xref--find-definition (xref-identifier-at-point (xref--backend)) nil)) >> >> That's the function I use most often. > > Hmm, xref-find-definition does this, except for the case when it's not > called interactively. I bound xref-find-definition to a key. When I invoke that key, I'm prompted for the identifier; the default is the identifier at point, but I still have to hit enter. I want to eliminate that prompt/enter step. Currently in ada-mode, C-c C-d gives the non-prompt identifier at point behavior; that makes it very fluid to drill down thru several layers of calls. > Do you need the non-interactive version? Maybe > it would be better to make xref-find-definition more useful > non-interactively than to define an almost identical function. I think xref-find-definition is fine as is; you can call it interactively to be prompted with completion, or programmatically and pass it an identifier. But that misses the interactive non-prompt case. We could use C-u or some other prefix to control that, but a separate function is easier to bind to a key. >> There is a FIXME on xref-push-marker-stack. I gather you'd like this to >> be independent of etags? >> >> It would not be hard to implement an independent marker ring/stack. But >> I think it makes more sense to use the etags marker ring; that way, >> if I am navigating thru code that uses multiple languages, and one >> language mode uses xref while another uses tags, there is still only one >> tag ring. >> >> Eventually, when most modes have migrated to xref, it might make sense >> to switch to a separate marker ring. > > My idea was to move the ring from etags.el to xref.el and perhaps define > some aliases for backward compatibility. +1 -- -- Stephe