emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Generalizing find-definition


From: Stephen Leake
Subject: Re: Generalizing find-definition
Date: Thu, 04 Dec 2014 10:19:58 -0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.94 (windows-nt)

Helmut Eller <address@hidden> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]