emacs-devel
[Top][All Lists]
Advanced

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

Re: [Emacs-diffs] trunk r113958: * minibuffer.el (completion--sifn-requo


From: Michael Albinus
Subject: Re: [Emacs-diffs] trunk r113958: * minibuffer.el (completion--sifn-requote): Bind `non-essential'.
Date: Thu, 22 Aug 2013 11:50:46 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Stefan Monnier <address@hidden> writes:

>>> My point is simply that the backtrace you show does not seem to perform
>>> non-essential work, so binding non-essential is not right.  It is
>>> computing the completion of /ssh:address@hidden:/ (not quite sure
>>> why, since the backtrace doesn't go further up).
>> The whole backtrace is in
>> <http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00533.html>
>> (the second backtrace in this message).
>
> So we're in the middle of minibuffer--complete-and-exit which calls
> try-completion.  That's very definitely not "non-essential".

Not `minibuffer--complete-and-exit'. But the completion functions I
would call non-essential.

As said, I don't know too much about completion code in minibuffer.el
(and the functions' docstrings don't help much). Maybe
`completion--sifn-requote' is not suited to bind `non-essential'. But
there are other `completion--*' functions in the backtrace, up to
`minibuffer--complete-and-exit'.

>>> At the same time I wonder why (substitute-in-file-name
>>> "/ssh:address@hidden") should signal an error: it looks like an
>>> incomplete filename, so we don't know yet whether it'll really be an
>>> error or not.
>> For Tramp, it is a complete filename wrt syntax. "ssh" is recognised as
>> host name, which is regarded as an error since we had decided this some
>> weeks ago. See <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13900#24>.
>
> Yes, it could be a "complete but ambiguous/erroneous" file name, but it
> could also be a "not yet complete file name".  So maybe, if there's no
> ":" nor "/" after "/ssh:", we should refrain from signaling an error.

Hmm. Why not signalling a pilot error, when a user applies "C-x f /sudo: RET"?
It's not so different from the case the user has described in Bug#13900,
which was the trigger to introduce the rule "host name != any method name".

>> Setting `non-essential' to t is a mean to tell Tramp not to check this.
>
> I do know that, but that's just an ugly hack here, since the code is not
> non-essential.

I don't know which further plans you have with `non-essential'. But its
setting to t is acknowledged so far only in ange-ftp and Tramp.

And it is bound to t only in icomplete.el, ido.el and rfn-eshadow.el, as
yet. For exactly that reason: "please relax your tests and connection
actions when performing file name completion or minibuffer decoration".
That doesn't sound ugly to me.

>         Stefan

Best regards, Michael.



reply via email to

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