Subject: Re: bug#79151: 31.0.50; eshell does not complete filename arguments with tramp

From: Daniel Mendler <[email-masked]>
Date: Sat, 02 Aug 2025 21:15:46 +0200

Jim Porter <[email-masked]> writes:

> CCing Michael, since I don't know much about the interaction between Pcomplete
> and Tramp here.

Thanks.

The problem was introduced by commit 26ca3e84e167f975afb4e9e9a838935bfe4a19a7.
I don't understand the reasoning given in the comment:

    ;; Determine, whether remote file names shall be completed.  They
    ;; shouldn't for external commands, or when in a pipe.  Respect
    ;; also `eshell-cmpl-remote-file-ignore', which could be set by
    ;; the user.

I often want to complete file names in when I am executing a command in
a remote directory, also for external commands, and maybe also as part
of a pipe.

> On 8/2/2025 3:59 AM, Daniel Mendler via Bug reports for GNU Emacs, the Swiss
> army knife of text editors wrote:
>> After an unknown command there is a discrepancy how file names are
>> completed depending on if the current directory is local or remote.
>> In Eshell I enter some command unknown to Pcomplete and then I try to
>> complete a filename:
>> ~/local $ mycommand fileprefix<TAB> --> Completion works
>> /ssh:user@host:~/ $ mycommand fileprefix<TAB> --> Completion does not work
>> /su::/ $ mycommand fileprefix<TAB> --> Completion does not work
>> I can fix the problem with the following advice which disables the
>> `pcomplete-remote-file-ignore' override:
>> (advice-add 'eshell-complete-parse-arguments
>>   :after (lambda () (kill-local-variable 'pcomplete-remote-file-ignore)))
>> Is this expected or is this a bug? What is the reasoning behind
>> disabling file name completion? I would like to always have the ability
>> to complete file names.