bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#60505: 29.0.60; Fido Mode and Tramp Completion


From: Gregory Heytings
Subject: bug#60505: 29.0.60; Fido Mode and Tramp Completion
Date: Sun, 15 Jan 2023 22:38:57 +0000


Hi Michael,

what do you think of that patch? It would be regrettable to leave that bug unfixed in Emacs 29.

Yes, it would be desirable to fix this. But it isn't the end of the world if this doesn't happen, the problem is already evident in Emacs 28, so we don't have a regression.


It's correct that the same problem is present in Emacs 28, but it is not in Emacs 27, so it's a regression. As I tried to explain in bug#50387, the problem is that once Tramp is loaded, Tramp methods are returned when completions are requested for a root directory ("/"). This problem is even worse since commit d5c6bf9625: prior to that commit only the 'scp' and 'scpx' methods were returned (in emacs -Q), now all methods are returned. And this confuses the flex and substring completion mechanisms.

By the way, to limit the scope of the potential collateral damages, it is also possible to use that condition only when completion-styles contain 'substring' or 'flex'.

What do you think of the attached patch?

And what do we want to do if there are more completion-styles like this? Extend Tramp then?


Not extend Tramp, but add them, if necessary, to the list of completion-styles that are handled specially by Tramp at that place. Unless of course a better fix has been implemented in the meantime.


And there are more use cases like this, which are not working properly. Think about changing the Tramp syntax to `separate', which means a remote file name like "[method/user@host]/path/to/file". If you use default completion, it works like this:

- emacs -Q -l tramp --eval '(tramp-change-syntax (quote separate))'
- Type "/ [ s TAB" and you see all methods
- Continue with "s h / TAB" and you see nonsense :-(
- Continue with "d TAB" and you see all possible host names starting with "d"
- Select a host name and type "] TAB TAB" and you see the remote file names

And now with fido:

- emacs -Q -l tramp --eval '(tramp-change-syntax (quote separate))' -f fido-mode
- Type "/ [ s TAB" and you see no completion at all
- Continue with "s h / TAB" and you see the same nonsense :-(
- Continue with "d TAB" and you see no completion at all
- Type host name and type "] TAB TAB" and you see the remote file names

Although the default completion isn't perfect (likely a Tramp bug), there is much more wrong with fido.


Well, that looks like a separate problem, with a non-default syntax, which (given the number of hits of "tramp-change-syntax" on Google or on Github) is apparently hardly ever used.

Nonetheless, I tried your recipe with the patch applied, and the good news is that with it, under Fido, Tramp behaves the same way it behaves under the default completions: the available methods are displayed after "/ [ s TAB", the same nonsense is displayed after "/ [ ssh/ TAB", and the possible host names are displayed after typing a letter followed by TAB.


Instead, Tramp shall apply a patch which is not related there, which adds further dependencies, which is not working for all use cases, and which is good for making more trouble in the future. My opinion.


I don't understand what you mean here, sorry.






reply via email to

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