Subject: bug#63359: 30.0.50; Lack of ssh hosts completion in Tramp using Fido mode

From: Bartosz Kaczyński <[email-masked]>
Date: Sun, 07 May 2023 17:14:18 +0000

Hi,

I would like to report an issue with the lack of SSH hostname
suggestions when connecting via Tramp using the Fido mode. Previously, I
used the exact same configuration in the Icomplete mode and the
completion worked, meaning I could do C-x C-f, start typing /ssh: <tab>,
and it would suggest a list of hosts defined in the configuration file.

I keep my connection in following structure:

tree ~/.ssh/conf.d/
.ssh/conf.d/
├── lab
├── personal
├── companyX
└── companyY

and following line in ~/.ssh/config:

Include conf.d/*

My fido-mode configuration:

(use-package icomplete
  :config
  (fido-mode t)
  (fido-vertical-mode t))  

Thank you in advance for your help!
bartk

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.37, cairo version 1.17.8) of 2023-04-30 built on lifebook
Repository revision: 605414d018da47f99dec5019142f584b6eb174c8
Repository branch: master
System Description: openSUSE Tumbleweed

Configured using:
 'configure --with-native-compilation --with-json --with-pgtk
 --with-xml2 --with-imagemagick --with-tree-sitter'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ IMAGEMAGICK
JPEG JSON LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PGTK PNG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER XIM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Group

Minor modes in effect:
  gnus-topic-mode: t
  gnus-undo-mode: t
  emms-mode-line-mode: t
  emms-playing-time-display-mode: t
  emms-playing-time-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  which-key-mode: t
  savehist-mode: t
  doom-modeline-mode: t
  fido-vertical-mode: t
  icomplete-vertical-mode: t
  icomplete-mode: t
  fido-mode: t
  global-display-line-numbers-mode: t
  save-place-mode: t
  shell-dirtrack-mode: t
  delete-selection-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/bkaczynski/.emacs.d/elpa/transient-20230501.1034/transient hides /usr/local/share/emacs/30.0.50/lisp/transient
/home/bkaczynski/.emacs.d/elpa/use-package-20230426.2324/use-package-lint hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-lint
/home/bkaczynski/.emacs.d/elpa/use-package-20230426.2324/use-package-jump hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-jump
/home/bkaczynski/.emacs.d/elpa/use-package-20230426.2324/use-package-ensure hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-ensure
/home/bkaczynski/.emacs.d/elpa/use-package-20230426.2324/use-package-core hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-core
/home/bkaczynski/.emacs.d/elpa/use-package-20230426.2324/use-package hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package
/home/bkaczynski/.emacs.d/elpa/use-package-20230426.2324/use-package-diminish hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-diminish
/home/bkaczynski/.emacs.d/elpa/use-package-20230426.2324/use-package-delight hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-delight
/home/bkaczynski/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /usr/local/share/emacs/30.0.50/lisp/use-package/bind-key
/home/bkaczynski/.emacs.d/elpa/use-package-20230426.2324/use-package-bind-key hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-bind-key
~/.emacs.d/site-lisp/erc-sasl hides /usr/local/share/emacs/30.0.50/lisp/erc/erc-sasl

Features:
(gnus-cite gnus-topic nndraft nnmh utf-7 epa-file network-stream
nnfolder bbdb-gnus bbdb-mua bbdb-com crm gnus-demon nnnil gnus-agent
gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu
mml2015 mm-view mml-smime smime gnutls dig nntp gnus-cache gnus-sum shr
pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start
gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec
gnus-int gnus-range gnus-win mm-url gnus nnheader range wid-edit
ace-window avy shadow bbdb-message mail-extr emacsbug message yank-media
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util
mm-decode mm-bodies mm-encode mailabbrev gmm-utils sendmail checkdoc
lisp-mnt flymake-proc flymake init init-irc erc erc-backend erc-networks
erc-common erc-compat erc-loaddefs init-mail bbdb bbdb-site timezone
mbsync init-multimedia justify-kp emms-mpris dbus pulse
emms-librefm-stream emms-librefm-scrobbler emms-playlist-limit emms-i18n
emms-history emms-score emms-stream-info emms-metaplaylist-mode
emms-bookmarks emms-cue emms-mode-line-icon emms-browser sort
emms-volume emms-volume-sndioctl emms-volume-mixerctl emms-volume-pulse
emms-volume-amixer emms-playlist-sort emms-last-played emms-player-xine
emms-player-mpd emms-lyrics emms-url emms-streams emms-show-all
emms-tag-editor emms-tag-tracktag emms-mark emms-mode-line emms-cache
emms-info-native bindat emms-info-exiftool emms-info-tinytag
emms-info-metaflac emms-info-opusinfo emms-info-ogginfo
emms-info-mp3info emms-playlist-mode emms-player-vlc emms-player-mpv
emms-playing-time emms-info emms-later-do emms-player-mplayer
emms-player-simple emms-source-playlist emms-source-file locate dired
dired-loaddefs emms-setup emms emms-compat init-misc chatgpt-shell
shell-maker goto-addr esh-mode esh-var markdown-mode anki-editor ox-md
ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn
nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar
org-agenda ox-html table ox-ascii ox-publish ox org-element org-persist
xdg org-id org-refile avl-tree exercism persist async-await iter2
promise xml url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr url-gw nsm puny promise-rejection-tracking
promise-finally promise-done promise-es6-extensions promise-core async
request mailheader mail-utils a init-tramp init-org ob-C cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs ob-python ob-plantuml ob-perl ob-scheme ob-restclient ob-sql
ob-shell ob-ditaa init-emacs-lisp ielm init-shells vterm bookmark pp
face-remap color vterm-module term/xterm xterm eshell esh-cmd esh-ext
esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util
init-config ssh-config-mode nginx-mode apache-mode init-coding-scheme
geiser-guile info-look transient geiser geiser-debug geiser-repl
geiser-image geiser-capf geiser-doc geiser-menu geiser-autodoc
geiser-edit etags fileloop generator xref geiser-completion geiser-eval
geiser-connection tq geiser-syntax scheme geiser-impl help-fns
radix-tree geiser-log geiser-popup view geiser-custom geiser-base
init-coding-nim ob-nim org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-src ob-comint org-pcomplete org-list org-footnote
org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table
ol org-fold org-fold-core org-keys oc org-loaddefs find-func cal-menu
calendar cal-loaddefs org-version org-compat org-macs nim-mode commenter
nim-fill nim-smie let-alist smie nim-helper nim-util nim-syntax nim-rx
nim-vars init-coding-cpp init-coding-go init-coding-python python
project pcase treesit init-coding-bash init-coding-common smartparens
loadhist thingatpt restclient advice noutline outline rainbow-delimiters
compile text-property-search init-completions yasnippet-snippets
yasnippet init-navigation init-minibuffer which-key use-package-diminish
savehist doom-modeline doom-modeline-segments doom-modeline-env
doom-modeline-core shrink-path f f-shortdoc s nerd-icons
nerd-icons-faces nerd-icons-data-material-design
nerd-icons-data-font-logos nerd-icons-data-codicons
nerd-icons-data-devicons nerd-icons-data-seti-ui-custom
nerd-icons-data-weather-icons nerd-icons-data-font-awesome
nerd-icons-data-powerline nerd-icons-data-octicons
nerd-icons-data-pomicons nerd-icons-data-iec-power-symbols compat
icomplete edmacro kmacro use-package-bind-key init-general
auth-source-pass display-line-numbers saveplace tramp-sh vagrant-tramp
term disp-table ehelp tramp tramp-loaddefs trampver tramp-integration
files-x tramp-compat shell pcomplete comint ansi-osc ansi-color ring
parse-time iso8601 ls-lisp format-spec comp comp-cstr warnings icons rx
init-appearance modus-vivendi-theme modus-themes delsel init-package
bind-key diminish time-date auto-package-update easy-mmode dash cl-extra
help-mode vc-use-package use-package-ensure use-package-core finder-inf
all-the-icons-completion-autoloads ob-restclient-autoloads
justify-kp-autoloads nov-autoloads orderless-autoloads bbdb-autoloads
marginalia-autoloads popup-autoloads vertico-autoloads
nginx-mode-autoloads vagrant-tramp-autoloads use-package-autoloads
geiser-guile-autoloads ob-nim-autoloads nim-mode-autoloads epc-autoloads
concurrent-autoloads deferred-autoloads ctable-autoloads
commenter-autoloads flycheck-nimsuggest-autoloads emms-autoloads
yasnippet-snippets-autoloads mbsync-autoloads restclient-autoloads
bind-key-autoloads chatgpt-shell-autoloads shell-maker-autoloads
company-autoloads multiple-cursors-autoloads anki-editor-autoloads
org-anki-autoloads esxml-autoloads yaml-mode-autoloads
visual-fill-column-autoloads go-mode-autoloads all-the-icons-autoloads
vc-use-package-autoloads ssh-config-mode-autoloads vterm-autoloads
keycast-autoloads ace-window-autoloads avy-autoloads
doom-modeline-autoloads shrink-path-autoloads f-autoloads
geiser-autoloads olivetti-autoloads kv-autoloads
nerd-icons-completion-autoloads nerd-icons-autoloads which-key-autoloads
exercism-autoloads transient-autoloads compat-autoloads
persist-autoloads async-await-autoloads iter2-autoloads
promise-autoloads async-autoloads request-autoloads s-autoloads
a-autoloads rainbow-delimiters-autoloads flycheck-autoloads
pkg-info-autoloads epl-autoloads yasnippet-autoloads
markdown-mode-autoloads diminish-autoloads auto-package-update-autoloads
smartparens-autoloads info dash-autoloads apache-mode-autoloads package
browse-url url url-proxy url-privacy url-expand url-methods url-history
url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache
json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs
cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win
pgtk-win term/common-win pgtk-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 nadvice seq simple cl-generic indonesian philippine
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 abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo gtk pgtk multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 819884 129955)
 (symbols 48 52201 5)
 (strings 32 244274 32897)
 (string-bytes 1 7000356)
 (vectors 16 87210)
 (vector-slots 8 1627068 152000)
 (floats 8 706 10411)
 (intervals 56 863 459)
 (buffers 984 23))