[Top][All Lists]

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

Re: xref-find-matches and stuff

From: Dmitry Gutov
Subject: Re: xref-find-matches and stuff
Date: Tue, 5 May 2015 18:23:54 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.0

On 05/05/2015 05:35 PM, Vitalie Spinu wrote:

You are already using class machinery, so how about to shift the focus
on backends and use generics instead. More concretely:

Look good to me. The initial implementation by Helmut (https://github.com/ellerh/xref) did almost exactly that, but it had to me more awkward because of preloading issues (and EIEIO not supporting (eql elisp) in the type qualifier.

Once that's done, you can introduce

   (setq xref-backends '(elisp etags ...))


     (setq xref-backend 'elisp)

for current backends. Then adding functionality to add/remove backends
from current list and rotate through different preset configurations of
backends is a piece of cake.

You would do (setq xref-backend 'xref-multi) in your minor mode, and write implementations delegating to the list that your mode stores internally.

You can define
`xref-loc-name` methods for location objects to extract a
wanna-be-unique name to be specifically used in comparison between

That's an interesting proposition. Will it help with duplication between

(defun system-name)

from elisp and

DEFUN ("system-name", Fsystem_name,

from etags?

Even if you cannot get rid of all duplicates it's the task of
the *xref* UI to provide sorting and duplication removal on specific

I don't really understand this, but I probably disagree. :)

If you are willing to wait till 20th of May I can propose patches for
this abstraction change and other UI ideas that we have discussed

Changing backends to use generics is fairly orthogonal to what I have planned next, so please do that at your convenience.

As for the UI, if you don't simply mean the said mode, but also the alternative xref output, I'd rather you wait with that for a while. The generics-based rendering and the grouping widgets will bring a lot of changes.

reply via email to

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