From: Morgan Willcock <morgan@ice9.digital>
To: 73234@debbugs.gnu.org
Cc: me@eshelyaron.com
Subject: bug#73234: 30.0.91; completion-preview-mode doesn't trigger for case-insensitive capf
Date: Fri, 13 Sep 2024 20:23:06 +0100 [thread overview]
Message-ID: <875xqzicit.fsf@ice9.digital> (raw)
I believe there is an issue with completion-preview-mode in that it
doesn't seem to find all completions for a case-insensitive completion
at point function.
Evaluating the code below in `emacs -Q` will put the current buffer into
fundamental mode with a case-insensitive completion at point function:
(defun test-completion-at-point-function ()
"Complete the symbol at point."
(pcase (bounds-of-thing-at-point 'symbol)
(`(,beg . ,end)
(list beg end
(completion-table-case-fold
(completion-table-dynamic
(lambda (string)
(list "TestSymbol"))))))))
(fundamental-mode)
(remove-hook 'completion-at-point-functions #'tags-completion-at-point-function)
(add-hook 'completion-at-point-functions #'test-completion-at-point-function)
(completion-preview-mode 1)
Once the code is evaluated:
- Typing "tes" into the buffer will not display the completion preview.
- The default completion mechanism (as initiated with complete-symbol
via C-M-i) will work with no problems, and replace "tes" with the
completion "TestSymbol".
- Typing "Tes" into the buffer will display the completion preview.
I would expect that the completion preview should be displayed for both
"tes" and "Tes" since a completion is available to use in both cases.
In GNU Emacs 30.0.91 (build 2, x86_64-pc-linux-gnu, X toolkit, cairo
version 1.16.0, Xaw3d scroll bars) of 2024-09-12 built on inspiron
Windowing system distributor 'The X.Org Foundation', version 11.0.12101007
System Description: Debian GNU/Linux 12 (bookworm)
Configured using:
'configure --with-native-compilation=aot --with-xml2
--with-x-toolkit=lucid'
Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG
LIBSELINUX LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG
SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XAW3D
XDBE XIM XINPUT2 XPM LUCID ZLIB
Important settings:
value of $LANG: en_GB.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix
Major mode: ELisp/d
Minor modes in effect:
server-mode: t
global-corfu-mode: t
corfu-mode: t
jabber-activity-mode: t
etags-regen-mode: t
which-key-mode: t
global-devil-mode: t
devil-mode: t
erc-ring-mode: t
erc-netsplit-mode: t
erc-menu-mode: t
erc-list-mode: t
erc-irccontrols-mode: t
erc-move-to-prompt-mode: t
erc-readonly-mode: t
erc-imenu-mode: t
erc-button-mode: t
erc-fill-mode: t
erc-stamp-mode: t
erc-spelling-mode: t
erc-track-mode: t
erc-match-mode: t
erc-autojoin-mode: t
erc-networks-mode: t
savehist-mode: t
minibuffer-electric-default-mode: t
minibuffer-depth-indicate-mode: t
ido-everywhere: t
recentf-mode: t
global-display-fill-column-indicator-mode: t
display-fill-column-indicator-mode: t
global-hl-line-mode: t
display-time-mode: t
flyspell-mode: t
tooltip-mode: t
global-eldoc-mode: t
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
minibuffer-regexp-mode: 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/mwillcock/.emacs.d/custom/powershell.el/powershell hides /home/mwillcock/.emacs.d/custom/powershell
/home/mwillcock/.emacs.d/elpa/which-key-3.6.1/which-key hides /usr/local/share/emacs/30.0.91/lisp/which-key
/home/mwillcock/.emacs.d/elpa/modus-themes-4.5.0/theme-loaddefs hides /usr/local/share/emacs/30.0.91/lisp/theme-loaddefs
Features:
(shadow sort ecomplete mail-extr emacsbug cursor-sensor server cal-iso
autorevert face-remap init corfu sly sly-completion sly-buttons
sly-messages sly-common apropos etags fileloop arc-mode archive-mode
hyperspec powershell php-mode mode-local consult-imenu consult php-face
php php-project jabber jabber-ourversion hippie-exp hexrgb fsm sgml-mode
facemenu srv dns starttls tls goto-addr yaml-mode markdown-mode lua-mode
advice edmacro kmacro etags-regen kixtart-docstrings cape kixtart-mode
tempo org-msg let-alist color 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-attach
htmlize gnus-msg gnus-icalendar icalendar gnus-dired gnus-cite which-key
devil delight comp comp-cstr ags-mode speedbar ezimage dframe shadowfile
eglot jsonrpc xref flymake diff ert ewoc debug backtrace warnings python
project cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs erc-ring erc-netsplit erc-menu erc-list
erc-goodies erc-imenu imenu erc-pcomplete erc-button erc-fill erc-stamp
erc-sasl erc-sasl-ecdsa-nist256p-challenge erc-sasl-scram-sha-512
erc-sasl-scram-sha-256 erc-sasl-scram-sha-1 erc-sasl-external
erc-sasl-plain sasl-scram-sha256 sasl-scram-rfc sasl-scram-sha-1 rfc2104
hex-util sasl sasl-anonymous sasl-login sasl-plain erc-spelling
erc-track erc-match erc-join erc erc-backend erc-networks erc-common
erc-compat compat erc-loaddefs ediff ediff-merg ediff-mult ediff-wind
ediff-diff ediff-help ediff-init ediff-util vc-git diff-mode
track-changes vc-dispatcher org-indent oc-basic cl-extra ol-eww eww
url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
gnus-art mm-uu mml2015 gnus-sum ol-docview doc-view filenotify jka-compr
image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi appt
diary-lib diary-loaddefs org-capture ob-shell ob-plantuml ob-dot
org-goto org-clock comp-run comp-common org-duration org-agenda
org-element org-persist org-id org-element-ast inline avl-tree generator
org-refile org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-src sh-script smie treesit executable ob-comint org-pcomplete
org-list org-footnote org-faces org-entities noutline outline
ob-emacs-lisp ob-core ob-eval org-version org-cycle org-table ol
org-fold org-fold-core org-keys oc org-loaddefs thingatpt org-compat
org-macs autoinsert compile bookmark savehist crm minibuf-eldef mb-depth
ido tramp-cache time-stamp tramp-sh tramp rx trampver tramp-integration
files-x tramp-message tramp-compat xdg format-spec tramp-loaddefs
recentf tree-widget shell pcomplete comint ansi-osc ansi-color ring
easy-mmode display-fill-column-indicator hl-line time gnus-group
gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source
utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win gnus
nnheader range cus-edit pp cus-load wid-edit dictionary
external-completion dictionary-connection flyspell ispell shr pixel-fill
kinsoku url-file svg xml dom modus-vivendi-theme modus-themes mm-view
mml-smime smime gnutls dig smtpmail message sendmail yank-media puny
dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068
gnus-util text-property-search time-date mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr
mailabbrev mail-utils gmm-utils mailheader epg-config help-mode dabbrev
find-func cal-menu calendar cal-loaddefs desktop frameset pcase
cape-autoloads consult-autoloads corfu-autoloads delight-autoloads
do-at-point-autoloads fsm-autoloads htmlize-autoloads lua-mode-autoloads
markdown-mode-autoloads modus-themes-autoloads package-lint-autoloads
php-mode-autoloads rainbow-mode-autoloads renpy-mode-autoloads
sly-autoloads totp-auth-autoloads base32-autoloads info
vertico-autoloads wgrep-autoloads which-key-autoloads
yaml-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 icons 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/x-win x-win term/common-win x-dnd
touch-screen 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 x-toolkit xinput2 x multi-tty move-toolbar
make-network-process native-compile emacs)
Memory information:
((conses 16 1662552 108846) (symbols 48 50603 5)
(strings 32 260961 5577) (string-bytes 1 7128489) (vectors 16 148988)
(vector-slots 8 2543291 190764) (floats 8 781 818)
(intervals 56 123265 150) (buffers 984 21))
next reply other threads:[~2024-09-13 19:23 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-13 19:23 Morgan Willcock [this message]
2024-09-14 6:07 ` bug#73234: 30.0.91; completion-preview-mode doesn't trigger for case-insensitive capf Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-14 9:53 ` Morgan Willcock
2024-09-14 16:23 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-14 20:46 ` Morgan Willcock
2024-09-15 6:40 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-17 19:03 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-18 20:23 ` Morgan Willcock
2024-09-19 5:39 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-19 14:59 ` Morgan Willcock
2024-09-20 9:27 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-20 10:05 ` Morgan Willcock
2024-09-20 10:34 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=875xqzicit.fsf@ice9.digital \
--to=morgan@ice9.digital \
--cc=73234@debbugs.gnu.org \
--cc=me@eshelyaron.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.