unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help
@ 2020-05-16 23:46 Ryan C. Thompson
  2020-05-16 23:55 ` Dmitry Gutov
  0 siblings, 1 reply; 10+ messages in thread
From: Ryan C. Thompson @ 2020-05-16 23:46 UTC (permalink / raw)
  To: 41340

When completion-auto-help is nil, ido-completing-read still pops up a 
completions buffer when pressing TAB on an ambiguous completion. This 
can be fixed manually by setting ido-cannot-complete-command to ignore, 
but it might be nice if ido-completion-help (the default value of 
ido-cannot-complete-command) was a no-op when completion-auto-helpis nil.

This was originally reported to me in the ido-completing-read+ issue 
tracker: 
https://github.com/DarwinAwardWinner/ido-completing-read-plus/issues/172

It would be easy enough for me to advise ido-completion-help to 
implement the above suggestion (and I probably will need to anyway, for 
the sake of older Emacsen, at least within ido-cr+ completion). However, 
this seems like something that can and probably should be fixed in ido 
itself.

Example code to reproduce the bug:

(let ((completion-auto-help nil))
   (ido-completing-read "Pick one: " '("apple" "appstore" "application") 
nil t nil nil "apple"))

Type "ap" and then press TAB repeatedly. The completions buffer will 
appear despite completion-auto-help being nil. If you replace replace 
ido-completing-read with completing-read-default and do the same, the 
completions buffer does not appear, as expected.



In GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll 
bars)
of 2020-03-26, modified by Debian built on lcy01-amd64-020
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000
System Description: Ubuntu 20.04 LTS

Recent messages:

Mark set
ido-completion-help@respect-completion-auto-help
Quit [3 times]
Mark set
[3 times]
Quit [5 times]
ido-completion-help@respect-completion-auto-help
Quit [6 times]
Killed inactive buffer: *Ido Completions*.

Configured using:
'configure --build x86_64-linux-gnu --prefix=/usr
--sharedstatedir=/var/lib --libexecdir=/usr/lib
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --enable-libsystemd --with-pop=yes
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.3/site-lisp:/usr/share/emacs/site-lisp 

--with-sound=alsa --without-gconf --with-mailutils --build
x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
--libexecdir=/usr/lib --localstatedir=/var/lib
--infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd
--with-pop=yes
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.3/site-lisp:/usr/share/emacs/site-lisp 

--with-sound=alsa --without-gconf --with-mailutils --with-x=yes
--with-x-toolkit=lucid --with-toolkit-scroll-bars --without-gsettings
'CFLAGS=-g -O2 -fdebug-prefix-map=/build/emacs-mEZBk7/emacs-26.3+1=.
-fstack-protector-strong -Wformat -Werror=format-security -Wall'
'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'
'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro''

Configured features:
XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GLIB NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM THREADS LIBSYSTEMD LCMS2

Important settings:
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:
recentf-mode: t
adjust-parens-mode: t
diff-auto-refine-mode: t
winner-mode: t
which-key-mode: t
which-function-mode: t
savehist-mode: t
save-place-mode: t
minibuffer-depth-indicate-mode: t
midnight-mode: t
icomplete-mode: t
global-hl-line-mode: t
desktop-save-mode: t
delete-selection-mode: t
ws-butler-global-mode: t
ws-butler-mode: t
volatile-highlights-mode: t
global-undo-tree-mode: t
undo-tree-mode: t
sml-modeline-mode: t
rainbow-delimiters-mode: t
pretty-symbols-mode: t
global-pointback-mode: t
pointback-mode: t
mode-line-bell-mode: t
mac-pseudo-daemon-mode: t
lexbind-mode: t
imagex-auto-adjust-mode: t
ido-yes-or-no-mode: t
minibuffer-electric-default-mode: t
ido-everywhere: t
ido-complete-space-or-hyphen-mode: t
highlight-stages-global-mode: t
highlight-stages-mode: t
highlight-defined-mode: t
global-git-gutter-mode: t
shell-dirtrack-mode: t
editorconfig-mode: t
beacon-mode: t
bar-cursor-mode: t
autopair-global-mode: t
autopair-mode: t
show-paren-mode: t
auto-dim-other-buffers-mode: t
global-auto-complete-mode: t
auto-complete-mode: t
global-anzu-mode: t
anzu-mode: t
amx-mode: t
override-global-mode: t
straight-use-package-mode: t
straight-package-neutering-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-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
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t

Load-path shadows:
/home/ryan/.emacs.d/straight/build/flycheck-elsa/Elsafile hides 
/home/ryan/.emacs.d/straight/build/elsa/Elsafile
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-C hides 
/usr/share/emacs/26.3/lisp/org/ob-C
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ebnf hides 
/usr/share/emacs/26.3/lisp/org/ob-ebnf
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-core hides 
/usr/share/emacs/26.3/lisp/org/ob-core
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-shen hides 
/usr/share/emacs/26.3/lisp/org/ob-shen
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-matlab hides 
/usr/share/emacs/26.3/lisp/org/ob-matlab
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox-icalendar hides 
/usr/share/emacs/26.3/lisp/org/ox-icalendar
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-compat hides 
/usr/share/emacs/26.3/lisp/org/org-compat
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-indent hides 
/usr/share/emacs/26.3/lisp/org/org-indent
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-plot hides 
/usr/share/emacs/26.3/lisp/org/org-plot
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-footnote hides 
/usr/share/emacs/26.3/lisp/org/org-footnote
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-table hides 
/usr/share/emacs/26.3/lisp/org/ob-table
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-forth hides 
/usr/share/emacs/26.3/lisp/org/ob-forth
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sass hides 
/usr/share/emacs/26.3/lisp/org/ob-sass
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sed hides 
/usr/share/emacs/26.3/lisp/org/ob-sed
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-dot hides 
/usr/share/emacs/26.3/lisp/org/ob-dot
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-R hides 
/usr/share/emacs/26.3/lisp/org/ob-R
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-lint hides 
/usr/share/emacs/26.3/lisp/org/org-lint
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-capture hides 
/usr/share/emacs/26.3/lisp/org/org-capture
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lisp hides 
/usr/share/emacs/26.3/lisp/org/ob-lisp
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-haskell hides 
/usr/share/emacs/26.3/lisp/org/ob-haskell
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-src hides 
/usr/share/emacs/26.3/lisp/org/org-src
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-makefile hides 
/usr/share/emacs/26.3/lisp/org/ob-makefile
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob hides 
/usr/share/emacs/26.3/lisp/org/ob
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-picolisp hides 
/usr/share/emacs/26.3/lisp/org/ob-picolisp
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-scheme hides 
/usr/share/emacs/26.3/lisp/org/ob-scheme
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-protocol hides 
/usr/share/emacs/26.3/lisp/org/org-protocol
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-crypt hides 
/usr/share/emacs/26.3/lisp/org/org-crypt
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-clojure hides 
/usr/share/emacs/26.3/lisp/org/ob-clojure
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-colview hides 
/usr/share/emacs/26.3/lisp/org/org-colview
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-exp hides 
/usr/share/emacs/26.3/lisp/org/ob-exp
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ref hides 
/usr/share/emacs/26.3/lisp/org/ob-ref
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-element hides 
/usr/share/emacs/26.3/lisp/org/org-element
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sql hides 
/usr/share/emacs/26.3/lisp/org/ob-sql
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-awk hides 
/usr/share/emacs/26.3/lisp/org/ob-awk
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-pcomplete hides 
/usr/share/emacs/26.3/lisp/org/org-pcomplete
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox-texinfo hides 
/usr/share/emacs/26.3/lisp/org/ox-texinfo
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-java hides 
/usr/share/emacs/26.3/lisp/org/ob-java
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lua hides 
/usr/share/emacs/26.3/lisp/org/ob-lua
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-shell hides 
/usr/share/emacs/26.3/lisp/org/ob-shell
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-python hides 
/usr/share/emacs/26.3/lisp/org/ob-python
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-stan hides 
/usr/share/emacs/26.3/lisp/org/ob-stan
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-coq hides 
/usr/share/emacs/26.3/lisp/org/ob-coq
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ledger hides 
/usr/share/emacs/26.3/lisp/org/ob-ledger
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-duration hides 
/usr/share/emacs/26.3/lisp/org/org-duration
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-inlinetask hides 
/usr/share/emacs/26.3/lisp/org/org-inlinetask
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-emacs-lisp hides 
/usr/share/emacs/26.3/lisp/org/ob-emacs-lisp
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-clock hides 
/usr/share/emacs/26.3/lisp/org/org-clock
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-abc hides 
/usr/share/emacs/26.3/lisp/org/ob-abc
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox-html hides 
/usr/share/emacs/26.3/lisp/org/ox-html
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-table hides 
/usr/share/emacs/26.3/lisp/org/org-table
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ditaa hides 
/usr/share/emacs/26.3/lisp/org/ob-ditaa
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-asymptote hides 
/usr/share/emacs/26.3/lisp/org/ob-asymptote
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-agenda hides 
/usr/share/emacs/26.3/lisp/org/org-agenda
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-calc hides 
/usr/share/emacs/26.3/lisp/org/ob-calc
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-perl hides 
/usr/share/emacs/26.3/lisp/org/ob-perl
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-gnuplot hides 
/usr/share/emacs/26.3/lisp/org/ob-gnuplot
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org hides 
/usr/share/emacs/26.3/lisp/org/org
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-org hides 
/usr/share/emacs/26.3/lisp/org/ob-org
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-screen hides 
/usr/share/emacs/26.3/lisp/org/ob-screen
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox hides 
/usr/share/emacs/26.3/lisp/org/ox
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-latex hides 
/usr/share/emacs/26.3/lisp/org/ob-latex
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-octave hides 
/usr/share/emacs/26.3/lisp/org/ob-octave
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lob hides 
/usr/share/emacs/26.3/lisp/org/ob-lob
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-attach hides 
/usr/share/emacs/26.3/lisp/org/org-attach
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-datetree hides 
/usr/share/emacs/26.3/lisp/org/org-datetree
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-macro hides 
/usr/share/emacs/26.3/lisp/org/org-macro
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-eval hides 
/usr/share/emacs/26.3/lisp/org/ob-eval
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-feed hides 
/usr/share/emacs/26.3/lisp/org/org-feed
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-io hides 
/usr/share/emacs/26.3/lisp/org/ob-io
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-ctags hides 
/usr/share/emacs/26.3/lisp/org/org-ctags
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox-org hides 
/usr/share/emacs/26.3/lisp/org/ox-org
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-macs hides 
/usr/share/emacs/26.3/lisp/org/org-macs
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sqlite hides 
/usr/share/emacs/26.3/lisp/org/ob-sqlite
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-fortran hides 
/usr/share/emacs/26.3/lisp/org/ob-fortran
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-groovy hides 
/usr/share/emacs/26.3/lisp/org/ob-groovy
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-list hides 
/usr/share/emacs/26.3/lisp/org/org-list
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-habit hides 
/usr/share/emacs/26.3/lisp/org/org-habit
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-tangle hides 
/usr/share/emacs/26.3/lisp/org/ob-tangle
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-comint hides 
/usr/share/emacs/26.3/lisp/org/ob-comint
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-install hides 
/usr/share/emacs/26.3/lisp/org/org-install
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-maxima hides 
/usr/share/emacs/26.3/lisp/org/ob-maxima
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-css hides 
/usr/share/emacs/26.3/lisp/org/ob-css
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox-man hides 
/usr/share/emacs/26.3/lisp/org/ox-man
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-mscgen hides 
/usr/share/emacs/26.3/lisp/org/ob-mscgen
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox-odt hides 
/usr/share/emacs/26.3/lisp/org/ox-odt
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-plantuml hides 
/usr/share/emacs/26.3/lisp/org/ob-plantuml
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox-latex hides 
/usr/share/emacs/26.3/lisp/org/ox-latex
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ruby hides 
/usr/share/emacs/26.3/lisp/org/ob-ruby
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-id hides 
/usr/share/emacs/26.3/lisp/org/org-id
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-J hides 
/usr/share/emacs/26.3/lisp/org/ob-J
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-faces hides 
/usr/share/emacs/26.3/lisp/org/org-faces
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lilypond hides 
/usr/share/emacs/26.3/lisp/org/ob-lilypond
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-mobile hides 
/usr/share/emacs/26.3/lisp/org/org-mobile
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox-md hides 
/usr/share/emacs/26.3/lisp/org/ox-md
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox-beamer hides 
/usr/share/emacs/26.3/lisp/org/ox-beamer
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ocaml hides 
/usr/share/emacs/26.3/lisp/org/ob-ocaml
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-js hides 
/usr/share/emacs/26.3/lisp/org/ob-js
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-entities hides 
/usr/share/emacs/26.3/lisp/org/org-entities
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-loaddefs hides 
/usr/share/emacs/26.3/lisp/org/org-loaddefs
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-vala hides 
/usr/share/emacs/26.3/lisp/org/ob-vala
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-hledger hides 
/usr/share/emacs/26.3/lisp/org/ob-hledger
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ob-processing hides 
/usr/share/emacs/26.3/lisp/org/ob-processing
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox-publish hides 
/usr/share/emacs/26.3/lisp/org/ox-publish
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-archive hides 
/usr/share/emacs/26.3/lisp/org/org-archive
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-mouse hides 
/usr/share/emacs/26.3/lisp/org/org-mouse
/home/ryan/.emacs.d/straight/build/org-plus-contrib/ox-ascii hides 
/usr/share/emacs/26.3/lisp/org/ox-ascii
/home/ryan/.emacs.d/straight/build/org-plus-contrib/org-timer hides 
/usr/share/emacs/26.3/lisp/org/org-timer
/home/ryan/.emacs.d/straight/build/let-alist/let-alist hides 
/usr/share/emacs/26.3/lisp/emacs-lisp/let-alist

Features:
(shadow sort mail-extr tramp-cache recentf tree-widget misearch
multi-isearch iso-transl eieio-opt speedbar sb-image ezimage dframe
two-column crux dabbrev cl-print completion help-fns radix-tree poly-R
poly-markdown poly-noweb markdown-mode edit-indirect cursor-sensor
ess-r-mode ess-r-flymake ess-r-xref ess-trns ess-r-package
ess-r-completion ess-roxy ess-r-syntax ess-rd hideshow ess-s-lang
ess-help ess-mode ess-inf ess-tracebug sh-script smie executable
adjust-parens elec-pair org-eldoc ol-eww eww mm-url url-queue url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap shr svg xml ol-rmail ol-mhe ol-irc ol-info
ol-gnus nnir gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap
nnmail mail-source tls gnutls utf7 netrc nnoo gnus-spec gnus-int
gnus-range gnus-win ol-docview doc-view jka-compr image-mode ol-bibtex
bibtex ol-bbdb ol-w3m conf-mode autorevert filenotify vc-git diff-mode
flymake-proc flymake editorconfig-core editorconfig-core-handle
editorconfig-fnmatch server emacsbug message rmc puny rfc822 mml mml-sec
epa epg mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail face-remap winner which-key which-func
savehist saveplace mb-depth midnight icomplete hl-line desktop frameset
delsel yaml-mode ws-butler with-simulated-input volatile-highlights
undo-tree diff tempbuf system-specific-settings snakemake-mode python
tramp-sh smooth-scrolling sml-modeline slime compile etags xref project
arc-mode archive-mode hyperspec browse-url slime-autoloads
reveal-in-osx-finder dired dired-loaddefs rainbow-delimiters
pretty-symbols polymode derived poly-lock polymode-base polymode-weave
polymode-export polymode-compat polymode-methods polymode-core
polymode-classes eieio-custom eieio-base color pointback assoc paradox
paradox-menu paradox-commit-list hydra lv paradox-execute paradox-github
paradox-core spinner package-lint let-alist finder org-bullets ox-extra
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
ox-html table ox-ascii ox-publish ox org-element avl-tree generator gnus
nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums
mail-utils mm-util mail-prsvr occur-context-resize noflet cl-indent
mode-line-bell mac-pseudo-daemon lexbind-mode json-mode json-reformat
json-snatcher js sgml-mode dom imenu cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs iqa image+
image-file ido-yes-or-no ido-completing-read+ memoize minibuf-eldef ido
ido-complete-space-or-hyphen htmlize cl highlight-stages
highlight-defined header2 header2-autoloads git-wip-mode vc
vc-dispatcher git-wip-mode-autoloads git-gutter-fringe fringe-helper
git-gutter-fringe-autoloads fringe-helper-autoloads git-gutter
git-gutter-autoloads flycheck-elsa flycheck-elsa-autoloads flycheck
flycheck-autoloads let-alist-autoloads pkg-info-autoloads filelock
filelock-autoloads esup-autoloads cus-edit cus-start cus-load wid-edit
ess ess-utils ess-custom tramp tramp-compat tramp-loaddefs trampver
ucs-normalize shell parse-time ess-autoloads julia-mode-autoloads elsa
elsa-typed-subr elsa-typed-thingatpt elsa-typed-syntax
elsa-extension-builtin elsa-ruleset elsa-rules-list elsa-analyser
elsa-typed-builtin elsa-english elsa-check elsa-state elsa-scope
elsa-reader elsa-type-helpers elsa-error pcase elsa-variable trinary
elsa-types elsa-autoloads trinary-autoloads editorconfig
editorconfig-autoloads readme-debian readme-debian-autoloads
debian-copyright debian-copyright-autoloads debian-control-mode
debian-control-mode-autoloads debian-changelog-mode add-log
debian-changelog-mode-autoloads diminish diminish-autoloads decide
decide-autoloads crux-autoloads creole-mode-autoloads cl-lib-highlight
cl-lib-highlight-autoloads cask-mode cask-mode-autoloads cask
cask-bootstrap ansi package-recipe-mode package-build-badges
package-build package-recipe eieio-compat json map lisp-mnt shut-up epl
git commander cask-autoloads ansi-autoloads package-build-autoloads
shut-up-autoloads epl-autoloads buttercup warnings ert pp ewoc debug
buttercup-compat buttercup-autoloads beacon beacon-autoloads bar-cursor
bar-cursor-autoloads autopair paren autopair-autoloads
auto-dim-other-buffers auto-dim-other-buffers-autoloads auto-complete
edmacro kmacro popup auto-complete-autoloads popup-autoloads finder-inf
async async-autoloads apt-sources-list apt-sources-list-autoloads
apache-mode-autoloads anzu thingatpt anzu-autoloads amx amx-autoloads
adjust-parens-autoloads exec-path-from-shell
exec-path-from-shell-autoloads f s f-autoloads s-autoloads req-package
view req-package-cycles req-package-args req-package-hooks ht log4e rx
dash use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key use-package-core
package epg-config url-handlers url-parse auth-source cl-seq eieio
eieio-core eieio-loaddefs password-cache url-vars seq
req-package-autoloads ht-autoloads log4e-autoloads dash-autoloads
use-package-autoloads bind-key-autoloads org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete
pcomplete comint ansi-color ring org-list org-faces org-entities
time-date noutline outline easy-mmode ob-emacs-lisp ob-core ob-eval
org-table ol org-keys org-compat byte-opt advice org-macs org-loaddefs
format-spec find-func cal-menu calendar cal-loaddefs
org-plus-contrib-autoloads org-version straight-autoloads info cl-extra
help-mode easymenu straight subr-x cl-macs gv bytecomp byte-compile
cl-loaddefs cl-lib cconv mule-util tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type 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 elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame 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 charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify lcms2 dynamic-setting
font-render-setting x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 1289052 127286)
(symbols 48 79943 1)
(miscs 40 2767 3163)
(strings 32 448440 6578)
(string-bytes 1 7618228)
(vectors 16 107525)
(vector-slots 8 2429484 97702)
(floats 8 583 1378)
(intervals 56 11794 168)
(buffers 992 50))





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help
  2020-05-16 23:46 bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help Ryan C. Thompson
@ 2020-05-16 23:55 ` Dmitry Gutov
  2020-05-17  0:12   ` Ryan C. Thompson
  0 siblings, 1 reply; 10+ messages in thread
From: Dmitry Gutov @ 2020-05-16 23:55 UTC (permalink / raw)
  To: Ryan C. Thompson, 41340

Hi Ryan,

On 17.05.2020 02:46, Ryan C. Thompson wrote:
> This can be fixed manually by setting ido-cannot-complete-command to 
> ignore, but it might be nice if ido-completion-help (the default value 
> of ido-cannot-complete-command) was a no-op when completion-auto-helpis 
> nil.

Care to propose a patch?





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help
  2020-05-16 23:55 ` Dmitry Gutov
@ 2020-05-17  0:12   ` Ryan C. Thompson
  2020-05-17  0:57     ` Dmitry Gutov
  0 siblings, 1 reply; 10+ messages in thread
From: Ryan C. Thompson @ 2020-05-17  0:12 UTC (permalink / raw)
  To: Dmitry Gutov, 41340

On 5/16/20 7:55 PM, Dmitry Gutov wrote:
> Hi Ryan,
>
> On 17.05.2020 02:46, Ryan C. Thompson wrote:
>> This can be fixed manually by setting ido-cannot-complete-command to 
>> ignore, but it might be nice if ido-completion-help (the default 
>> value of ido-cannot-complete-command) was a no-op when 
>> completion-auto-helpis nil.
>
> Care to propose a patch?

One minor wrinkle is that completion-auto-help has 3 valid values: nil, 
t, and lazy. I'm not sure I understand the difference between t and 
lazy, so I'm also unsure as to how to apply them to ido. In my testing, 
both t and lazy seem to result in the identical behavior in 
completing-read-default.






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help
  2020-05-17  0:12   ` Ryan C. Thompson
@ 2020-05-17  0:57     ` Dmitry Gutov
  2020-05-17  1:16       ` Ryan C. Thompson
  0 siblings, 1 reply; 10+ messages in thread
From: Dmitry Gutov @ 2020-05-17  0:57 UTC (permalink / raw)
  To: Ryan C. Thompson, 41340

On 17.05.2020 03:12, Ryan C. Thompson wrote:
> 
> One minor wrinkle is that completion-auto-help has 3 valid values: nil, 
> t, and lazy. I'm not sure I understand the difference between t and 
> lazy, so I'm also unsure as to how to apply them to ido. In my testing, 
> both t and lazy seem to result in the identical behavior in 
> completing-read-default.

When it's `lazy', you need to press TAB twice to see the completions 
list. At first it'll just say "Next char is not unique".

If you can honor both values, that would be best, but even making the 
nil/non-nil distinction will be an improvement, sounds like.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help
  2020-05-17  0:57     ` Dmitry Gutov
@ 2020-05-17  1:16       ` Ryan C. Thompson
  2020-05-17  1:32         ` Dmitry Gutov
  0 siblings, 1 reply; 10+ messages in thread
From: Ryan C. Thompson @ 2020-05-17  1:16 UTC (permalink / raw)
  To: Dmitry Gutov, 41340

On 5/16/20 8:57 PM, Dmitry Gutov wrote:
> On 17.05.2020 03:12, Ryan C. Thompson wrote:
>>
>> One minor wrinkle is that completion-auto-help has 3 valid values: 
>> nil, t, and lazy. I'm not sure I understand the difference between t 
>> and lazy, so I'm also unsure as to how to apply them to ido. In my 
>> testing, both t and lazy seem to result in the identical behavior in 
>> completing-read-default.
>
> When it's `lazy', you need to press TAB twice to see the completions 
> list. At first it'll just say "Next char is not unique".
>
> If you can honor both values, that would be best, but even making the 
> nil/non-nil distinction will be an improvement, sounds like.

Hmm, that's not the behavior I see, even in emacs -Q. Regardless of 
whether it's `t' or `lazy', the first TAB press completes any common 
prefix, and then the very next TAB press shows the completions buffer. I 
never get the "Next char is not unique" message (I checked the Messages 
buffer to be sure).

I don't have time to dig deeper into this right now, but I'll come back 
to it, probably on Monday.







^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help
  2020-05-17  1:16       ` Ryan C. Thompson
@ 2020-05-17  1:32         ` Dmitry Gutov
  2020-05-20 14:12           ` Ryan C. Thompson
  0 siblings, 1 reply; 10+ messages in thread
From: Dmitry Gutov @ 2020-05-17  1:32 UTC (permalink / raw)
  To: Ryan C. Thompson, 41340

On 17.05.2020 04:16, Ryan C. Thompson wrote:
> Hmm, that's not the behavior I see, even in emacs -Q.

That's odd.

I get it in 'M-x describe-function', at least.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help
  2020-05-17  1:32         ` Dmitry Gutov
@ 2020-05-20 14:12           ` Ryan C. Thompson
  2020-05-20 14:20             ` Ryan C. Thompson
  0 siblings, 1 reply; 10+ messages in thread
From: Ryan C. Thompson @ 2020-05-20 14:12 UTC (permalink / raw)
  To: Dmitry Gutov, 41340

[-- Attachment #1: Type: text/plain, Size: 627 bytes --]

On 5/16/20 9:32 PM, Dmitry Gutov wrote:
> On 17.05.2020 04:16, Ryan C. Thompson wrote:
>> Hmm, that's not the behavior I see, even in emacs -Q.
>
> That's odd.
>
> I get it in 'M-x describe-function', at least.
Ok, I figured out the difference between t and `lazy', and I determined 
that the lazy setting is not meaningful for ido, since ido already 
eagerly shows completions at all times. Hence, the attached patch 
teaches ido how to respect `completion-auto-help' being set to nil but 
doesn't make any special allowance for `lazy'. The existing behavior of 
ido is already correct when `completion-auto-help' is non-nil.

[-- Attachment #2: 0001-lisp-ido.el-Respect-completion-auto-help-setting.patch --]
[-- Type: text/plain, Size: 1540 bytes --]

From 6272b4910033c8bc6095da4e2f030dcf79504b52 Mon Sep 17 00:00:00 2001
From: "Ryan C. Thompson" <rct@thompsonclan.org>
Date: Wed, 20 May 2020 10:03:32 -0400
Subject: [PATCH] lisp/ido.el: Respect completion-auto-help setting

This commit makes ido completion respect the user's setting for
`completion-auto-help'. However, note that in addition to t and nil,
`completion-auto-help' can also be set to `lazy', but `lazy' doesn't
make sense for ido, in which available completions are already eagerly
shown in the minibuffer. So ido just treats `lazy' identically to t.
---
 lisp/ido.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lisp/ido.el b/lisp/ido.el
index 81883402ad..1ee93a14c3 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -2517,7 +2517,7 @@ If cursor is not at the end of the user input, move to end of input."
       (exit-minibuffer))
 
      ((not ido-matches)
-      (when ido-completion-buffer
+      (when (and ido-completion-buffer completion-auto-help)
 	(call-interactively (setq this-command ido-cannot-complete-command))))
 
      ((and (= 1 (length ido-matches))
@@ -2543,7 +2543,8 @@ If cursor is not at the end of the user input, move to end of input."
 	    (delete-region (minibuffer-prompt-end) (point))
 	    (insert res))
 	;; else nothing to complete
-	(call-interactively (setq this-command ido-cannot-complete-command))
+	(when completion-auto-help
+          (call-interactively (setq this-command ido-cannot-complete-command)))
 	)))))
 
 (defun ido-complete-space ()
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help
  2020-05-20 14:12           ` Ryan C. Thompson
@ 2020-05-20 14:20             ` Ryan C. Thompson
  2020-05-20 14:34               ` Ryan C. Thompson
  0 siblings, 1 reply; 10+ messages in thread
From: Ryan C. Thompson @ 2020-05-20 14:20 UTC (permalink / raw)
  To: Dmitry Gutov, 41340

On 5/20/20 10:12 AM, Ryan C. Thompson wrote:
> Ok, I figured out the difference between t and `lazy', and I 
> determined that the lazy setting is not meaningful for ido, since ido 
> already eagerly shows completions at all times. Hence, the attached 
> patch teaches ido how to respect `completion-auto-help' being set to 
> nil but doesn't make any special allowance for `lazy'. The existing 
> behavior of ido is already correct when `completion-auto-help' is 
> non-nil.

Actually, on further consideration, I've realized a problem with this 
approach: this patch uses the value of `completion-auto-help' to 
determine whether to call `ido-cannot-complete-command'. However, the 
ido documentation mentions the possibility of setting 
`ido-cannot-complete-command' to `ido-next-match', which allows the user 
to cycle through available completions with repeated TAB presses. This 
patch kind of breaks that, in the sense that `completion-auto-help' ends 
up affecting something totally unrelated.

Perhaps an better approach would be to define an auxiliary wrapper 
function that only calls `ido-completion-help' if `completion-auto-help' 
is non-nil, and set that as the default for `ido-cannot-complete-command'.






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help
  2020-05-20 14:20             ` Ryan C. Thompson
@ 2020-05-20 14:34               ` Ryan C. Thompson
  2020-05-20 23:26                 ` Dmitry Gutov
  0 siblings, 1 reply; 10+ messages in thread
From: Ryan C. Thompson @ 2020-05-20 14:34 UTC (permalink / raw)
  To: Dmitry Gutov, 41340

[-- Attachment #1: Type: text/plain, Size: 324 bytes --]

On 5/20/20 10:20 AM, Ryan C. Thompson wrote:
> Perhaps an better approach would be to define an auxiliary wrapper 
> function that only calls `ido-completion-help' if 
> `completion-auto-help' is non-nil, and set that as the default for 
> `ido-cannot-complete-command'.

Here is a patch to implement the suggestion above.


[-- Attachment #2: 0001-lisp-ido.el-Respect-completion-auto-help-setting.patch --]
[-- Type: text/plain, Size: 2213 bytes --]

From 101c03fbee9e1554704e470ce51ee099766b5284 Mon Sep 17 00:00:00 2001
From: "Ryan C. Thompson" <rct@thompsonclan.org>
Date: Wed, 20 May 2020 10:26:08 -0400
Subject: [PATCH] lisp/ido.el: Respect completion-auto-help setting

This commit makes ido completion respect the user's setting for
`completion-auto-help' by default. It does this by defining a wrapper
function `ido-completion-auto-help', which calls `ido-completion-help'
only when `completion-auto-help' is non-nil.

Note that `completion-auto-help' can also be `lazy', but this is
irrelevant to ido, which already shows completions eagerly at all
times. So `lazy' is just treated like t.
---
 lisp/ido.el | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/lisp/ido.el b/lisp/ido.el
index 81883402ad..15144f131b 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -499,11 +499,13 @@ This means that \\[ido-complete] must always be followed by \\[ido-exit-minibuff
 even when there is only one unique completion."
   :type 'boolean)
 
-(defcustom ido-cannot-complete-command 'ido-completion-help
+(defcustom ido-cannot-complete-command 'ido-completion-auto-help
   "Command run when `ido-complete' can't complete any more.
 The most useful values are `ido-completion-help', which pops up a
-window with completion alternatives, or `ido-next-match' or
-`ido-prev-match', which cycle the buffer list."
+window with completion alternatives; `ido-completion-auto-help',
+which does the same but respects the value of
+`completion-auto-help'; or `ido-next-match' or `ido-prev-match',
+which cycle the buffer list."
   :type 'function)
 
 
@@ -3926,6 +3928,14 @@ If `ido-change-word-sub' cannot be found in WORD, return nil."
       (when (bobp)
 	(next-completion 1)))))
 
+(defun ido-completion-auto-help ()
+  "Call `ido-completion-help' if `completion-auto-help' is non-nil."
+  (interactive)
+  ;; Note: `completion-auto-help' could also be `lazy', but this value
+  ;; is irrelevant to ido, which is fundamentally eager, so it is
+  ;; treated the same as t.
+  (when completion-auto-help
+    (ido-completion-help)))
 
 (defun ido-completion-help ()
   "Show possible completions in the `ido-completion-buffer'."
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help
  2020-05-20 14:34               ` Ryan C. Thompson
@ 2020-05-20 23:26                 ` Dmitry Gutov
  0 siblings, 0 replies; 10+ messages in thread
From: Dmitry Gutov @ 2020-05-20 23:26 UTC (permalink / raw)
  To: Ryan C. Thompson, 41340-done

Version: 28.1

On 20.05.2020 17:34, Ryan C. Thompson wrote:
> On 5/20/20 10:20 AM, Ryan C. Thompson wrote:
>> Perhaps an better approach would be to define an auxiliary wrapper 
>> function that only calls `ido-completion-help' if 
>> `completion-auto-help' is non-nil, and set that as the default for 
>> `ido-cannot-complete-command'.
> 
> Here is a patch to implement the suggestion above.

Pushed to master, thanks!





^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-05-20 23:26 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-16 23:46 bug#41340: 26.3; ido-completing-read doesn't respect completion-auto-help Ryan C. Thompson
2020-05-16 23:55 ` Dmitry Gutov
2020-05-17  0:12   ` Ryan C. Thompson
2020-05-17  0:57     ` Dmitry Gutov
2020-05-17  1:16       ` Ryan C. Thompson
2020-05-17  1:32         ` Dmitry Gutov
2020-05-20 14:12           ` Ryan C. Thompson
2020-05-20 14:20             ` Ryan C. Thompson
2020-05-20 14:34               ` Ryan C. Thompson
2020-05-20 23:26                 ` Dmitry Gutov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).