GNU bug report logs -
#51386
29.0.50; fido-vertical-mode: ssh host completion
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 51386 in the body.
You can then email your comments to 51386 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Mon, 25 Oct 2021 14:39:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Manuel Uberti <manuel.uberti <at> inventati.org>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Mon, 25 Oct 2021 14:39:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi,
if I do this from emacs -Q:
- M-x fido-vertical-mode
- C-x C-f
- Type /ssh:
- Press TAB
I see the *Completions* buffer with this content:
Click on a completion to select it.
In this buffer, type RET to select the completion near point.
Possible completions are:
ssh:
sshx:
sshfs:
If I instead do not enable fido-vertical-mode, and I do:
- C-x C-f
- Type /ssh:
- Press TAB
I see this in the *Completions* buffer:
Click on a completion to select it.
In this buffer, type RET to select the completion near point.
Possible completions are:
ssh:work-serv:
ssh:server:
Which are the hosts coming from my ~/.ssh/config, and this is what I was
expecting with fido-vertical-mode.
I noticed fido-vertical-mode uses icomplete--fido-mode-setup, which among other
things sets (with setq-local) completion-styles to '(flex).
Now, if I use icomplete-vertical-mode with completion-styles set to
'(basic partial-completion flex), pressing TAB after /ssh: shows me the hosts I
was looking for.
In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.18, cairo
version 1.16.0)
of 2021-10-25 built on hathaway
Repository revision: 79f7e87da5037f22be07954bb8000ee88e18e515
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12009000
System Description: Ubuntu 20.04 LTS
Configured using:
'configure --with-harfbuzz --with-native-compilation'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF
TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB
Important settings:
value of $LC_MESSAGES: en_GB.UTF-8
value of $LC_MONETARY: it_IT.UTF-8
value of $LC_NUMERIC: it_IT.UTF-8
value of $LC_TIME: it_IT.UTF-8
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
shell-dirtrack-mode: t
icomplete-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
rmail-loaddefs text-property-search mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils tramp-cache tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat shell
pcomplete comint ansi-color ring parse-time iso8601 time-date ls-lisp
format-spec auth-source eieio eieio-core eieio-loaddefs password-cache
json map cus-start comp comp-cstr warnings rx cl-seq cl-macs cl-extra
seq gv subr-x byte-opt bytecomp byte-compile cconv cus-load icomplete
help-mode cl-loaddefs cl-lib iso-transl tooltip eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process
native-compile emacs)
Memory information:
((conses 16 114626 9140)
(symbols 48 10350 1)
(strings 32 28393 2886)
(string-bytes 1 959527)
(vectors 16 19385)
(vector-slots 8 325769 14133)
(floats 8 45 290)
(intervals 56 506 0)
(buffers 992 12))
--
Manuel Uberti
www.manueluberti.eu
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Mon, 25 Oct 2021 14:55:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 51386 <at> debbugs.gnu.org (full text, mbox):
See bug#50387. This is a recent "improvement". Now you're supposed to
type the first character of the hostname to see completions.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Mon, 25 Oct 2021 15:09:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 51386 <at> debbugs.gnu.org (full text, mbox):
On 25/10/21 16:54, Gregory Heytings wrote:
> See bug#50387. This is a recent "improvement". Now you're supposed to type the
> first character of the hostname to see completions.
It doesn't seem to work, though. From emacs -Q:
- M-x fido-vertical-mode
- C-x C-f
- /ssh:s
- press TAB
The hostname isn't completed and I don't see the *Completions* buffer. While
without enabling fido-vertical-mode, I get /ssh:server on pressing TAB after /ssh:s
--
Manuel Uberti
www.manueluberti.eu
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Mon, 25 Oct 2021 16:14:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 51386 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
>
> It doesn't seem to work, though. From emacs -Q:
>
Tramp doesn't behave as expected with only flex in completion-styles,
indeed. I see the same problem in Emacs 27. Your bug report was similar
to bug#50387, it is in fact related but subtly different.
>
> The hostname isn't completed and I don't see the *Completions* buffer.
> While without enabling fido-vertical-mode, I get /ssh:server on pressing
> TAB after /ssh:s
>
I'd suggest to add something a fallback method in
icomplete--fido-mode-setup, for example completion-styles '(flex basic).
And perhaps to apply the attached patch in your local Emacs, which
provides I think the behavior you expect.
[Improve-handling-of-non-default-completion-styles-wi.patch (text/x-diff, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Tue, 26 Oct 2021 04:48:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 51386 <at> debbugs.gnu.org (full text, mbox):
On 25/10/21 18:13, Gregory Heytings wrote:
> I'd suggest to add something a fallback method in icomplete--fido-mode-setup,
> for example completion-styles '(flex basic). And perhaps to apply the attached
> patch in your local Emacs, which provides I think the behavior you expect.
FWIW, it works with '(basic partial-completion flex), even without your patch
applied.
--
Manuel Uberti
www.manueluberti.eu
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Tue, 26 Oct 2021 07:14:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 51386 <at> debbugs.gnu.org (full text, mbox):
>> I'd suggest to add something a fallback method in
>> icomplete--fido-mode-setup, for example completion-styles '(flex
>> basic). And perhaps to apply the attached patch in your local Emacs,
>> which provides I think the behavior you expect.
>
> FWIW, it works with '(basic partial-completion flex), even without your
> patch applied.
>
Of course: if you prioritize simpler completion mechanisms, it works
without the fix for more complex completion mechanisms.
Can this bug be closed from your POV?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Tue, 26 Oct 2021 15:31:01 GMT)
Full text and
rfc822 format available.
Message #23 received at 51386 <at> debbugs.gnu.org (full text, mbox):
On 26/10/21 09:13, Gregory Heytings wrote:
> Of course: if you prioritize simpler completion mechanisms, it works without the
> fix for more complex completion mechanisms.
>
> Can this bug be closed from your POV?
Not unless there is a documented way to work around this problem with fido-mode,
IMO. The used should be told to customize completion-styles properly, I guess,
provided it customization does not get overridden by icomplete--fido-mode-setup.
--
Manuel Uberti
www.manueluberti.eu
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Tue, 26 Oct 2021 16:01:01 GMT)
Full text and
rfc822 format available.
Message #26 received at 51386 <at> debbugs.gnu.org (full text, mbox):
On 26/10/21 17:30, Manuel Uberti wrote:
> On 26/10/21 09:13, Gregory Heytings wrote:
>> Of course: if you prioritize simpler completion mechanisms, it works without
>> the fix for more complex completion mechanisms.
>>
>> Can this bug be closed from your POV?
>
> Not unless there is a documented way to work around this problem with fido-mode,
> IMO. The used should be told to customize completion-styles properly, I guess,
> provided it customization does not get overridden by icomplete--fido-mode-setup.
>
"used" was "user" and "it customization" was "its customization". Sorry about that.
--
Manuel Uberti
www.manueluberti.eu
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Tue, 26 Oct 2021 18:13:01 GMT)
Full text and
rfc822 format available.
Message #29 received at submit <at> debbugs.gnu.org (full text, mbox):
Manuel Uberti via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs <at> gnu.org> writes:
Hi Manuel,
>>> Can this bug be closed from your POV?
>> Not unless there is a documented way to work around this problem
>> with fido-mode, IMO. The used should be told to customize
>> completion-styles properly, I guess, provided it customization does
>> not get overridden by icomplete--fido-mode-setup.
>>
>
> "used" was "user" and "it customization" was "its customization". Sorry about that.
The Tramp manual says
--8<---------------cut here---------------start------------->8---
User name and host name completion is activated only, if file name
completion has one of the styles ‘basic’, ‘emacs21’, or ‘emacs22’.
--8<---------------cut here---------------end--------------->8---
Furthermore, it mentions the problem of typing at least the first letter
of a host or user name in a footnote, see (info "(tramp) File name completion-Footnote-1")
--8<---------------cut here---------------start------------->8---
(1) Some completion styles, like ‘substring’ or ‘flex’, require to
type at least one character after the trailing ‘:’.
--8<---------------cut here---------------end--------------->8---
Granted, this is very short. Proposals for better wording in the Tramp
manual are welcome.
Bonus point, if somebody who knows completion styles by heart could fix
this annoyance. Then we don't need to document it.
Best regards, Michael.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Tue, 26 Oct 2021 18:13:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Tue, 26 Oct 2021 18:25:01 GMT)
Full text and
rfc822 format available.
Message #35 received at 51386 <at> debbugs.gnu.org (full text, mbox):
>
> Bonus point, if somebody who knows completion styles by heart could fix
> this annoyance. Then we don't need to document it.
>
??? I sent you a (one-line!) patch for the second annoyance, and you
rejected it. I'd be willing to look at the first annoyance, but not if
it's to see the patch again rejected.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Tue, 26 Oct 2021 18:54:02 GMT)
Full text and
rfc822 format available.
Message #38 received at 51386 <at> debbugs.gnu.org (full text, mbox):
Gregory Heytings <gregory <at> heytings.org> writes:
Hi Gregory,
>> Bonus point, if somebody who knows completion styles by heart could
>> fix this annoyance. Then we don't need to document it.
>>
>
> ??? I sent you a (one-line!) patch for the second annoyance, and you
> rejected it. I'd be willing to look at the first annoyance, but not
> if it's to see the patch again rejected.
Your patch violates the file-name-all-completions API. Testing with
"emacs -Q -l tramp":
Currently, we have the following with vanilla Emacs (on my laptop):
--8<---------------cut here---------------start------------->8---
(file-name-all-completions "" "/")
=> ("sudoedit:" "sshfs:" "smb:" "rcp:" "remcp:" "scp:" "scpx:" "rsync:" "rsh:" "remsh:" "ssh:" "sshx:" "telnet:" "nc:" "su:" "sg:" "sudo:" "doas:" "ksu:" "krlogin:" "plink:" "plinkx:" "pscp:" "psftp:" "fcp:" "rclone:" "afp:" "dav:" "davs:" "gdrive:" "mtp:" "nextcloud:" "sftp:" "ftp:" "adb:" "sbin/" "proc/" "bin/" "snap/" "opt/" "var/" "dev/" "lib64/" "./" "nonexistent/" "lost+found/" "media/" "root/" "srv/" "etc/" "mnt/" "../" "tmp/" "net/" "sys/" "lib/" "boot/" "home/" "run/" "usr/")
--8<---------------cut here---------------end--------------->8---
With your one-line patch, we have instead
--8<---------------cut here---------------start------------->8---
(file-name-all-completions "" "/")
=> ("sbin/" "proc/" "bin/" "snap/" "opt/" "var/" "dev/" "lib64/" "./" "nonexistent/" "lost+found/" "media/" "root/" "srv/" "etc/" "mnt/" "../" "tmp/" "net/" "sys/" "lib/" "boot/" "home/" "run/" "usr/")
--8<---------------cut here---------------end--------------->8---
That means, all Tramp methods are suppressed. This is wrong, a valid
file name can start with a Tramp method. The Elisp manual calls such
cnstructs "magic" file names, but they are still valid file name
prefixes in the sense of file-name-all-completions. And so they are
valid results.
Our discrepancy is, that I believe we shall follow the API, and fix
problems where they are located. You want a workaround in Tramp, which
would IMO do more damage than it is good for. My experience tells me
that such hacks will create new problems we have to deal with in the
future.
Both of us agree that there is a problem. I don't intend to reject
patches from you, I just must be convinced that they solve the problem
adequately.
Best regards, Michael.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Tue, 26 Oct 2021 19:07:02 GMT)
Full text and
rfc822 format available.
Message #41 received at 51386 <at> debbugs.gnu.org (full text, mbox):
>
> Your patch violates the file-name-all-completions API. Testing with
> "emacs -Q -l tramp":
>
We've discussed this earlier. I concluded that the problem is in the
file-name-all-completions, where it can be fixed with a single line
change. You believe that the problem should be fixed at the level of the
completion mechanisms, which won't happen.
>
> Currently, we have the following with vanilla Emacs (on my laptop):
>
> (file-name-all-completions "" "/") => ("sudoedit:" ...)
>
> With your one-line patch, we have instead
>
> (file-name-all-completions "" "/") => ("sbin/" ...)
>
> That means, all Tramp methods are suppressed.
>
That's a very partial way of presenting what my patch does. The truth is
that Tramp methods are not at all suppressed. They are not returned when
the completions of the root directory are required, they are returned as
soon as at least one character is typed:
(file-name-all-completions "s" "/") => ("sudoedit:" "sshfs:" ... "sys/" ...)
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 05:51:02 GMT)
Full text and
rfc822 format available.
Message #44 received at submit <at> debbugs.gnu.org (full text, mbox):
On 26/10/21 20:12, Michael Albinus wrote:
> Furthermore, it mentions the problem of typing at least the first letter
> of a host or user name in a footnote, see (info "(tramp) File name completion-Footnote-1")
>
> --8<---------------cut here---------------start------------->8---
> (1) Some completion styles, like ‘substring’ or ‘flex’, require to
> type at least one character after the trailing ‘:’.
> --8<---------------cut here---------------end--------------->8---
As I reported before, at the moment from 'emacs -Q' and with fido-vertical-mode
enabled, typing one character after the trailing ':' does not offer the
completions I can see without fido-vertical-mode.
--
Manuel Uberti
www.manueluberti.eu
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 05:51:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 07:52:02 GMT)
Full text and
rfc822 format available.
Message #50 received at 51386 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
>
> As I reported before, at the moment from 'emacs -Q' and with
> fido-vertical-mode enabled, typing one character after the trailing ':'
> does not offer the completions I can see without fido-vertical-mode.
>
In your case both conditions apply:
1. User name and host name completion is activated only, if file name
completion has one of the styles ‘basic’, ‘emacs21’, or ‘emacs22’.
2. Some completion styles, like ‘substring’ or ‘flex’, require to type at
least one character after the trailing ‘:’.
The second condition could perhaps be reworded as "Some completion styles,
like 'substring' or 'flex', require to type at least one character after
the trailing ':' *when they come first in the completion-styles list*."
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 07:57:02 GMT)
Full text and
rfc822 format available.
Message #53 received at 51386 <at> debbugs.gnu.org (full text, mbox):
On 27/10/21 09:51, Gregory Heytings wrote:
> The second condition could perhaps be reworded as "Some completion styles, like
> 'substring' or 'flex', require to type at least one character after the trailing
> ':' *when they come first in the completion-styles list*."
Just wondering: wouldn't be enough to change icomplete--fido-mode-setup to use:
(setq-local completion-styles '(flex basic))
Instead of:
(setq-local completion-styles '(flex))
As it is doing currently?
--
Manuel Uberti
www.manueluberti.eu
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 08:06:02 GMT)
Full text and
rfc822 format available.
Message #56 received at 51386 <at> debbugs.gnu.org (full text, mbox):
>> The second condition could perhaps be reworded as "Some completion
>> styles, like 'substring' or 'flex', require to type at least one
>> character after the trailing ':' *when they come first in the
>> completion-styles list*."
>
> Just wondering: wouldn't be enough to change icomplete--fido-mode-setup
> to use:
>
> (setq-local completion-styles '(flex basic))
>
> Instead of:
>
> (setq-local completion-styles '(flex))
>
> As it is doing currently?
>
It depends what you mean by "being enough". That setting would be better,
but you would still have to type the first character of the hostname.
With that setting and my patch, everything would work as you would expect,
namely, you wouldn't have to type the first character of the hostname
anymore.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 08:08:01 GMT)
Full text and
rfc822 format available.
Message #59 received at 51386 <at> debbugs.gnu.org (full text, mbox):
On 27/10/21 10:05, Gregory Heytings wrote:
> It depends what you mean by "being enough". That setting would be better, but
> you would still have to type the first character of the hostname. With that
> setting and my patch, everything would work as you would expect, namely, you
> wouldn't have to type the first character of the hostname anymore.
I see. Well then yes, my opinion is that both the completion-styles setting and
your patch should be added.
--
Manuel Uberti
www.manueluberti.eu
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 09:07:01 GMT)
Full text and
rfc822 format available.
Message #62 received at 51386 <at> debbugs.gnu.org (full text, mbox):
Gregory Heytings <gregory <at> heytings.org> writes:
Hi Gregory,
>>> The second condition could perhaps be reworded as "Some completion
>>> styles, like 'substring' or 'flex', require to type at least one
>>> character after the trailing ':' *when they come first in the
>>> completion-styles list*."
>>
>> Just wondering: wouldn't be enough to change
>> icomplete--fido-mode-setup to use:
>>
>> (setq-local completion-styles '(flex basic))
>>
>> Instead of:
>>
>> (setq-local completion-styles '(flex))
>>
>> As it is doing currently?
>
> It depends what you mean by "being enough". That setting would be
> better, but you would still have to type the first character of the
> hostname. With that setting and my patch, everything would work as you
> would expect, namely, you wouldn't have to type the first character of
> the hostname anymore.
The better setting is '(basic flex). With that setting, there is no
problem at all. Try
emacs -Q -l tramp --eval "(setq completion-styles '(basic flex))"
This works out-of-the box, w/o any further patch (as you have said above).
If I do instead
emacs -Q -l tramp --eval "(setq completion-styles '(basic flex))" -f fido-vertical-mode
it doesn't work. Debugging of fido-vertical-mode is needed, I suppose.
Best regards, Michael.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 09:09:02 GMT)
Full text and
rfc822 format available.
Message #65 received at 51386 <at> debbugs.gnu.org (full text, mbox):
On 27/10/21 11:05, Michael Albinus wrote:
> If I do instead
>
> emacs -Q -l tramp --eval "(setq completion-styles '(basic flex))" -f fido-vertical-mode
>
> it doesn't work. Debugging of fido-vertical-mode is needed, I suppose.
Hi Michael,
as I wrote before, I think it's because fido-vertical-mode uses
icomplete--fido-mode-setup, which locally sets completion-styles:
(defun icomplete--fido-mode-setup ()
"Setup `fido-mode''s minibuffer."
(when (and icomplete-mode (icomplete-simple-completing-p))
(use-local-map (make-composed-keymap icomplete-fido-mode-map
(current-local-map)))
(setq-local icomplete-tidy-shadowed-file-names t
icomplete-show-matches-on-no-input t
icomplete-hide-common-prefix nil
icomplete-scroll (not (null icomplete-vertical-mode))
completion-styles '(flex)
completion-flex-nospace nil
completion-category-defaults nil
completion-ignore-case t
read-buffer-completion-ignore-case t
read-file-name-completion-ignore-case t)))
--
Manuel Uberti
www.manueluberti.eu
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 09:13:02 GMT)
Full text and
rfc822 format available.
Message #68 received at 51386 <at> debbugs.gnu.org (full text, mbox):
>
> The better setting is '(basic flex). With that setting, there is no
> problem at all. Try
>
> emacs -Q -l tramp --eval "(setq completion-styles '(basic flex))"
>
That's better from your point of view. Some users do not want to use the
"basic" completion backend before the "flex" completion backend, they want
to use "flex" and, only when "flex" fails, "basic".
>
> If I do instead
>
> emacs -Q -l tramp --eval "(setq completion-styles '(basic flex))" -f
> fido-vertical-mode
>
> it doesn't work. Debugging of fido-vertical-mode is needed, I suppose.
>
This has already been done, as Manuel suggested the solution would be to
add a fallback in icomplete--fido-mode-setup, which amounts to doing (set
completion-styles '(flex basic)).
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 10:16:02 GMT)
Full text and
rfc822 format available.
Message #71 received at 51386 <at> debbugs.gnu.org (full text, mbox):
On 27.10.2021 10:55, Manuel Uberti via Bug reports for GNU Emacs, the
Swiss army knife of text editors wrote:
> (setq-local completion-styles '(flex basic))
That looks a little silly: flex should match anywhere where basic matches.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 10:24:02 GMT)
Full text and
rfc822 format available.
Message #74 received at 51386 <at> debbugs.gnu.org (full text, mbox):
>> (setq-local completion-styles '(flex basic))
>
> That looks a little silly: flex should match anywhere where basic
> matches.
>
Perhaps it should, but it doesn't, especially when the completion provider
tries to be smart. See:
emacs -Q -l tramp --eval "(setq completion-styles '(flex))"
C-x C-f /ssh: TAB
emacs -Q -l tramp --eval "(setq completion-styles '(basic))"
C-x C-f /ssh: TAB
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 10:27:01 GMT)
Full text and
rfc822 format available.
Message #77 received at 51386 <at> debbugs.gnu.org (full text, mbox):
On 27.10.2021 13:23, Gregory Heytings wrote:
>
> Perhaps it should, but it doesn't, especially when the completion
> provider tries to be smart.
I'm not sure "smart" is the word I'd use.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 11:12:02 GMT)
Full text and
rfc822 format available.
Message #80 received at 51386 <at> debbugs.gnu.org (full text, mbox):
Gregory Heytings <gregory <at> heytings.org> writes:
Hi Grepor,
>> If I do instead
>>
>> emacs -Q -l tramp --eval "(setq completion-styles '(basic flex))" -f
>> fido-vertical-mode
>>
>> it doesn't work. Debugging of fido-vertical-mode is needed, I suppose.
>>
>
> This has already been done, as Manuel suggested the solution would be
> to add a fallback in icomplete--fido-mode-setup, which amounts to
> doing (set completion-styles '(flex basic)).
Yep. However, even if I apply this patch to icomplete.el and also your
Tramp patch it doesn't complete method names like "/ss TAB". So this
cannot be the proper solution I believe.
And, beside of fido-vertical-mode, your Tramp patch hides the method
names at all. If I try
emacs -Q -l tramp --eval "(setq completion-styles '(flex basic))"
and apply then 'C-x C-f /ss TAB', it offers only the candidate '/sys/',
and nothing else. W/o your patch, there are the candidates
--8<---------------cut here---------------start------------->8---
Possible completions are:
sshfs: ssh:
sshx: sys/
--8<---------------cut here---------------end--------------->8---
Anyway, all our tests are mood. I would really appreciate if a
completion style author could chime in, and could investigate. I don't
say that there isn't an error in Tramp, but before I accept patches I
must understand what's up. And the proposed patch doesn't fix all cases
sufficiently (plus it violates the API, but this we have discussed
already in several rounds).
Best regards, Michael.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 11:21:02 GMT)
Full text and
rfc822 format available.
Message #83 received at 51386 <at> debbugs.gnu.org (full text, mbox):
On 27.10.2021 14:10, Michael Albinus wrote:
> Anyway, all our tests are mood. I would really appreciate if a
> completion style author could chime in, and could investigate. I don't
> say that there isn't an error in Tramp, but before I accept patches I
> must understand what's up. And the proposed patch doesn't fix all cases
> sufficiently (plus it violates the API, but this we have discussed
> already in several rounds).
flex aside, does this completion work with the 'substring' completion
style, for example?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 11:23:01 GMT)
Full text and
rfc822 format available.
Message #86 received at 51386 <at> debbugs.gnu.org (full text, mbox):
On 27/10/21 13:19, Dmitry Gutov wrote:
> On 27.10.2021 14:10, Michael Albinus wrote:
>> Anyway, all our tests are mood. I would really appreciate if a
>> completion style author could chime in, and could investigate. I don't
>> say that there isn't an error in Tramp, but before I accept patches I
>> must understand what's up. And the proposed patch doesn't fix all cases
>> sufficiently (plus it violates the API, but this we have discussed
>> already in several rounds).
>
> flex aside, does this completion work with the 'substring' completion style, for
> example?
From emacs -Q:
- (setq completion-styles '(substring))
- C-x C-f
- /ssh
- TAB
I get the *Completions* buffer with this content:
Click on a completion to select it.
In this buffer, type RET to select the completion near point.
Possible completions are:
ssh:
sshfs:
sshx:
While with the following from emacs -Q:
- (setq completion-styles '(substring))
- C-x C-f
- /ssh:
- TAB
I don't get any *Completions* buffer at all.
--
Manuel Uberti
www.manueluberti.eu
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 11:24:02 GMT)
Full text and
rfc822 format available.
Message #89 received at 51386 <at> debbugs.gnu.org (full text, mbox):
>
> And, beside of fido-vertical-mode, your Tramp patch hides the method
> names at all.
>
No, it does not.
>
> If I try
>
> emacs -Q -l tramp --eval "(setq completion-styles '(flex basic))"
>
> and apply then 'C-x C-f /ss TAB', it offers only the candidate '/sys/',
> and nothing else. W/o your patch, there are the candidates
>
Yes, this is because "flex" is tried first, and returns "sys" because it
contains two "s".
With that setting (flex basic), everything works perfectly with C-x C-f
/ssh TAB, after which you see "ssh: sshfs: sshx:", and with C-x C-f /ssh:
TAB, after which you see the hostnames.
With (substring basic), C-x C-f /ss TAB is completed and becomes /ssh.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 11:37:01 GMT)
Full text and
rfc822 format available.
Message #92 received at 51386 <at> debbugs.gnu.org (full text, mbox):
Gregory Heytings <gregory <at> heytings.org> writes:
Hi Gregory,
>> That looks a little silly: flex should match anywhere where basic
>> matches.
>
> Perhaps it should, but it doesn't, especially when the completion
> provider tries to be smart. See:
>
> emacs -Q -l tramp --eval "(setq completion-styles '(flex))"
> C-x C-f /ssh: TAB
>
> emacs -Q -l tramp --eval "(setq completion-styles '(basic))"
> C-x C-f /ssh: TAB
Agreed. Should be fixed first.
And this is what the Tramp manual says. I've grepped the archives, and
it seems I've added this sentence after a discussion in the thread
starting at <https://lists.gnu.org/archive/html/help-gnu-emacs/2019-10/msg00129.html>.
There's an interesting contribution from Stefan Monnier, but all what he
has said is out of my scope. I don't know what to do with completion
styles.
Best regards, Michael.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 11:40:02 GMT)
Full text and
rfc822 format available.
Message #95 received at 51386 <at> debbugs.gnu.org (full text, mbox):
>
> flex aside, does this completion work with the 'substring' completion
> style, for example?
>
It depends what you mean by "work" ;-)
1. Without my patch:
1.1. With (substring) alone:
/ TAB lists all Tramp methods and all directories in the root directory
/ ss TAB is completed and offers the ssh: sshfs: sshx: methods
/ ssh: TAB displays "Sole completion", and it's not possible to complete
hostnames (with or without a first char)
1.2. With (substring basic):
/ TAB lists all Tramp methods and all directories in the root directory
/ ss TAB is completed and offers the ssh: sshfs: sshx: methods
/ ssh: TAB displays "Sole completion", but after typing one more char you
get the list of hostnames which start with that char
2. With my patch:
2.1. With (substring) alone, nothing works, Tramp methods and hostnames
are not recognized, which is at least coherent with what the manual says:
"User name and host name completion is activated only, if file name
completion has one of the styles 'basic', 'emacs21', or 'emacs22'".
2.2. With (substring basic):
/ TAB lists all directories in the root directory
/ ss TAB is completed and offers the ssh: sshfs: sshx: methods
/ ssh: TAB displays the list of hostnames
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 11:43:02 GMT)
Full text and
rfc822 format available.
Message #98 received at 51386 <at> debbugs.gnu.org (full text, mbox):
Gregory Heytings <gregory <at> heytings.org> writes:
Hi Gregory,
>> And, beside of fido-vertical-mode, your Tramp patch hides the method
>> names at all.
>
> No, it does not.
I'm pretty sure we won't find a solution if we continue to repeat our
arguments.
The message from Stefan (see the reference in my other mail) seems to be
promising. I would like to go the way he proposes, but I'm a dummy in
completion styles.
Best regards, Michael.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 11:56:02 GMT)
Full text and
rfc822 format available.
Message #101 received at 51386 <at> debbugs.gnu.org (full text, mbox):
Gregory Heytings <gregory <at> heytings.org> writes:
Hi Gregory,
> 2. With my patch:
>
> 2.1. With (substring) alone, nothing works, Tramp methods and
> hostnames are not recognized, which is at least coherent with what the
> manual says: "User name and host name completion is activated only, if
> file name completion has one of the styles 'basic', 'emacs21', or
> 'emacs22'".
Yes. But this statement in the Tramp manual isn't a feature. It rather
explains an error, and how to work around. So no, (substring) alone
doesn't "work".
Best regards, Michael.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 12:03:01 GMT)
Full text and
rfc822 format available.
Message #104 received at 51386 <at> debbugs.gnu.org (full text, mbox):
>
> Agreed. Should be fixed first.
>
I don't know what kind of fix you expect, but FTR with my patch everyting
works as expected with the following completion-styles:
(basic partial-completion emacs22) ;; default
(initials basic)
(flex basic)
(substring basic)
Without, only the two first work as expected.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 12:05:02 GMT)
Full text and
rfc822 format available.
Message #107 received at 51386 <at> debbugs.gnu.org (full text, mbox):
>
> The message from Stefan (see the reference in my other mail) seems to be
> promising.
>
I'll have a look.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Wed, 27 Oct 2021 12:13:02 GMT)
Full text and
rfc822 format available.
Message #110 received at 51386 <at> debbugs.gnu.org (full text, mbox):
Gregory Heytings <gregory <at> heytings.org> writes:
>> The message from Stefan (see the reference in my other mail) seems
>> to be promising.
>
> I'll have a look.
Thank you.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#51386
; Package
emacs
.
(Sun, 31 Oct 2021 18:14:02 GMT)
Full text and
rfc822 format available.
Message #113 received at 51386 <at> debbugs.gnu.org (full text, mbox):
Just to add another pair of eyes on this, I am CC'ing João Távora here because I
know he put some work on fido-mode and maybe could share his opinion on this.
--
Manuel Uberti
www.manueluberti.eu
Merged 51386 52758.
Request was from
Michael Albinus <michael.albinus <at> gmx.de>
to
control <at> debbugs.gnu.org
.
(Thu, 23 Dec 2021 18:47:02 GMT)
Full text and
rfc822 format available.
Merged 51386 52758 53513.
Request was from
Michael Albinus <michael.albinus <at> gmx.de>
to
control <at> debbugs.gnu.org
.
(Tue, 25 Jan 2022 09:16:03 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 19 Mar 2023 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 229 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.