* bug#70010: 30.0.50; completion-preview-mode behaves mode-local, but is global
@ 2024-03-26 11:10 Philip Kaludercic
2024-03-26 19:10 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 9+ messages in thread
From: Philip Kaludercic @ 2024-03-26 11:10 UTC (permalink / raw)
To: 70010; +Cc: Eshel Yaron
I tried to enable `completion-preview-mode' by adding
(setopt completion-preview-mode t)
in my init, but it had not effect. When I check the implementation, I
noticed that it modifies `post-command-hook' locally. I think it would
make sense to rename the current `completion-preview-mode' to
`completion-preview-local-mode', and then use
`define-globalized-minor-mode' to define `completion-preview-mode'.
In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.41, cairo version 1.18.0) of 2024-03-14 built on peregrine
Repository revision: f68765a2ca12362f9e3971c4c743fb3dc9c3ea13
Repository branch: master
System Description: Fedora Linux 39 (Workstation Edition)
Configured using:
'configure --with-pgtk --with-native-compilation=aot
--with-imagemagick'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
IMAGEMAGICK JPEG JSON LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP 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: Lisp Interaction
Minor modes in effect:
completion-preview-mode: t
rcirc-track-minor-mode: t
flyspell-mode: t
flymake-mode: t
outline-minor-mode: t
yas-minor-mode: t
repeat-mode: t
display-battery-mode: t
rcirc-sqlite-log-mode: t
display-time-mode: t
diff-hl-flydiff-mode: t
diff-hl-mode: t
winner-mode: t
windmove-mode: t
electric-pair-mode: t
recentf-mode: t
save-place-mode: t
savehist-mode: t
pixel-scroll-precision-mode: t
pixel-scroll-mode: t
xterm-mouse-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tab-bar-mode: t
file-name-shadow-mode: t
context-menu-mode: t
global-font-lock-mode: t
font-lock-mode: t
minibuffer-regexp-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
~/.config/emacs/site-lisp/.auto-site hides /home/phi/.config/emacs/site-lisp/dot-mode/.auto-site
~/.config/emacs/site-lisp/.auto-site hides /home/phi/.config/emacs/site-lisp/company-coq/.auto-site
~/.config/emacs/site-lisp/.auto-site hides /home/phi/.config/emacs/site-lisp/clang-capf/.auto-site
~/.config/emacs/site-lisp/.auto-site hides /home/phi/.config/emacs/site-lisp/0x0/.auto-site
/home/phi/.config/emacs/site-lisp/package-lint/package-lint hides /home/phi/.config/emacs/elpa/package-lint-0.21/package-lint
/home/phi/.config/emacs/site-lisp/package-lint/package-lint-flymake hides /home/phi/.config/emacs/elpa/package-lint-0.21/package-lint-flymake
/home/phi/.config/emacs/site-lisp/shell-command+/shell-command+ hides /home/phi/.config/emacs/elpa/shell-command+/shell-command+
/home/phi/.config/emacs/site-lisp/shell-command+/shell-command+-tests hides /home/phi/.config/emacs/elpa/shell-command+/shell-command+-tests
~/.config/emacs/site-lisp/.auto-site hides /home/phi/.config/emacs/elpa/site-lisp/.auto-site
/home/phi/.config/emacs/elpa/ef-themes-1.6.0/theme-loaddefs hides /home/phi/.config/emacs/elpa/standard-themes-2.0.1/theme-loaddefs
/home/phi/.config/emacs/elpa/ef-themes-1.6.0/theme-loaddefs hides /home/phi/.config/emacs/elpa/sweeprolog-0.27.4/theme-loaddefs
/home/phi/.config/emacs/site-lisp/vc-backup/vc-backup hides /home/phi/.config/emacs/elpa/vc-backup-1.1.0/vc-backup
/home/phi/.config/emacs/elpa/transient-0.5.3/transient hides /home/phi/Source/emacs/lisp/transient
/home/phi/.config/emacs/elpa/ef-themes-1.6.0/theme-loaddefs hides /home/phi/Source/emacs/lisp/theme-loaddefs
Features:
(shadow emacsbug whitespace smerge-mode avy dictionary
dictionary-connection url-http url-gw url-cache url-auth eww url-queue
mm-url magit-utils crm dash nnselect gnus-search eieio-opt speedbar
ezimage dframe eglot external-completion jsonrpc compat ert imenu
sml-mode smie thai-util thai-word mule-util cl-print debug backtrace
pulse color help-fns bug-reference vc-git find-func typo mailalias
smtpmail quail writegood-mode ecomplete flow-fill slime apropos etags
fileloop generator xref arc-mode archive-mode hyperspec flymake-cc
macrostep-c cmacexp macrostep cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs dired-aux autorevert
filenotify gnus-dired mm-archive sort smiley gnus-cite mail-extr textsec
uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check
gnus-async gnus-bcklg qp gnus-ml char-fold misearch multi-isearch
do-at-point hi-lock face-remap disp-table rcirc vc-backup copyright
nndraft nnmh utf-7 nnfolder epa-file network-stream nsm 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 message yank-media puny dired-x dired dired-loaddefs
rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader gnus-win
flyspell ispell checkdoc flymake yasnippet-snippets yasnippet noutline
outline init repeat battery dbus xml shell-command+ thingatpt
rcirc-sqlite derived time sendmail rfc2047 rfc2045 ietf-drums gnus
nnheader gnus-util mail-utils range mm-util mail-prsvr diff-hl-flydiff
diff diff-hl log-view pcvs-util vc-dir ewoc vc vc-dispatcher diff-mode
hippie-exp winner windmove project finder-inf elec-pair tramp-cache
time-stamp recentf tree-widget saveplace tramp-sh tramp trampver
tramp-integration files-x tramp-message tramp-compat xdg shell pcomplete
parse-time iso8601 time-date format-spec tramp-loaddefs savehist
pixel-scroll cua-base xt-mouse cus-edit pp cus-load wid-edit .auto-site
compile text-property-search comint ansi-osc ansi-color ring easy-mmode
loaddefs-gen lisp-mnt radix-tree site-lisp setup ada-mode-autoloads
agda2-mode-autoloads auctex-autoloads tex-site autocrypt-autoloads
avy-autoloads bash-completion-autoloads buffer-env-autoloads
debbugs-autoloads diff-hl-autoloads do-at-point-autoloads
ef-themes-autoloads ellama-autoloads erlang-autoloads
flymake-proselint-autoloads focus-autoloads forth-mode-autoloads
geiser-gauche-autoloads geiser-autoloads gnat-compiler-autoloads
gnu-apl-mode-autoloads go-mode-autoloads haskell-mode-autoloads
htmlize-autoloads llm-autoloads lua-mode-autoloads magit-autoloads
git-commit-autoloads magit-section-autoloads dash-autoloads
markdown-mode-autoloads package-lint-autoloads proof-general-autoloads
proof-site proof-autoloads rcirc-sqlite-autoloads rust-mode-autoloads
setup-autoloads shell-command+-autoloads site-lisp-autoloads
slime-autoloads macrostep-autoloads sml-mode-autoloads spinner-autoloads
standard-themes-autoloads sweeprolog-autoloads transient-autoloads
tuareg-autoloads caml-autoloads typo-autoloads uniquify-files-autoloads
vc-backup-autoloads vc-fossil-autoloads wisi-autoloads info
with-editor-autoloads writegood-mode-autoloads
yasnippet-snippets-autoloads yasnippet-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 eieio eieio-core password-cache json map byte-opt comp
cl-seq comp-cstr warnings comp-run comp-common rx cl-macs pcase subr-x
gv bytecomp byte-compile url-vars cl-extra help-mode icons 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 move-toolbar
make-network-process native-compile emacs)
Memory information:
((conses 16 1037371 161354) (symbols 48 35127 55)
(strings 32 193482 17814) (string-bytes 1 5647670) (vectors 16 97175)
(vector-slots 8 2053839 201081) (floats 8 802 7911)
(intervals 56 37770 4439) (buffers 984 63))
--
Philip Kaludercic on peregrine
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#70010: 30.0.50; completion-preview-mode behaves mode-local, but is global
2024-03-26 11:10 bug#70010: 30.0.50; completion-preview-mode behaves mode-local, but is global Philip Kaludercic
@ 2024-03-26 19:10 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-26 19:49 ` Philip Kaludercic
0 siblings, 1 reply; 9+ messages in thread
From: Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-03-26 19:10 UTC (permalink / raw)
To: Philip Kaludercic; +Cc: 70010
Hello Philip,
Philip Kaludercic <philipk@posteo.net> writes:
> I tried to enable `completion-preview-mode' by adding
>
> (setopt completion-preview-mode t)
>
> in my init, but it had not effect.
Indeed, it is a minor mode, so one normally enables it by calling the
function completion-preview-mode, perhaps interactively via M-x.
> When I check the implementation, I noticed that it modifies
> `post-command-hook' locally. I think it would make sense to rename
> the current `completion-preview-mode' to
> `completion-preview-local-mode', and then use
> `define-globalized-minor-mode' to define `completion-preview-mode'.
We can add a global variant, although IMO the natural scope for
completion-preview-mode is per major mode: for some kinds of content you
want to have completion preview, and for others you may want it off.
Note that a necessary condition for completion-preview-mode to be useful
in a certain context is that completion-at-point is useful in that
context, since otherwise there's nothing to preview.
Therefore, I recommend enabling completion-preview-mode by adding it to
major mode hooks, such as prog-mode-hook or comint-mode-hook.
Admittedly, if you do want to enable it for all buffers, the major mode
hook approach would require adding it to four or five hooks, which is a
bit less elegant than enabling a global minor mode once.
So I suggest we keep completion-preview-mode local and add a global
variant, say, completion-preview-global-mode, for enabling it globally.
WDYT?
Best,
Eshel
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#70010: 30.0.50; completion-preview-mode behaves mode-local, but is global
2024-03-26 19:10 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-03-26 19:49 ` Philip Kaludercic
2024-03-26 21:49 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 9+ messages in thread
From: Philip Kaludercic @ 2024-03-26 19:49 UTC (permalink / raw)
To: Eshel Yaron; +Cc: 70010
Eshel Yaron <me@eshelyaron.com> writes:
> Hello Philip,
>
> Philip Kaludercic <philipk@posteo.net> writes:
>
>> I tried to enable `completion-preview-mode' by adding
>>
>> (setopt completion-preview-mode t)
>>
>> in my init, but it had not effect.
>
> Indeed, it is a minor mode, so one normally enables it by calling the
> function completion-preview-mode, perhaps interactively via M-x.
I enable all minor modes as user options, so I'd disagree that using a
function or invoking the command are the only ways to expect a minor
mode to be enabled.
>> When I check the implementation, I noticed that it modifies
>> `post-command-hook' locally. I think it would make sense to rename
>> the current `completion-preview-mode' to
>> `completion-preview-local-mode', and then use
>> `define-globalized-minor-mode' to define `completion-preview-mode'.
>
> We can add a global variant, although IMO the natural scope for
> completion-preview-mode is per major mode: for some kinds of content you
> want to have completion preview, and for others you may want it off.
> Note that a necessary condition for completion-preview-mode to be useful
> in a certain context is that completion-at-point is useful in that
> context, since otherwise there's nothing to preview.
>
> Therefore, I recommend enabling completion-preview-mode by adding it to
> major mode hooks, such as prog-mode-hook or comint-mode-hook.
> Admittedly, if you do want to enable it for all buffers, the major mode
> hook approach would require adding it to four or five hooks, which is a
> bit less elegant than enabling a global minor mode once.
>
> So I suggest we keep completion-preview-mode local and add a global
> variant, say, completion-preview-global-mode, for enabling it globally.
> WDYT?
That seems fine as well.
--
Philip Kaludercic on peregrine
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#70010: 30.0.50; completion-preview-mode behaves mode-local, but is global
2024-03-26 19:49 ` Philip Kaludercic
@ 2024-03-26 21:49 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-27 7:07 ` Juri Linkov
2024-03-27 12:09 ` Eli Zaretskii
0 siblings, 2 replies; 9+ messages in thread
From: Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-03-26 21:49 UTC (permalink / raw)
To: Philip Kaludercic; +Cc: 70010
[-- Attachment #1: Type: text/plain, Size: 2177 bytes --]
Philip Kaludercic <philipk@posteo.net> writes:
> Eshel Yaron <me@eshelyaron.com> writes:
>
>> Hello Philip,
>>
>> Philip Kaludercic <philipk@posteo.net> writes:
>>
>>> I tried to enable `completion-preview-mode' by adding
>>>
>>> (setopt completion-preview-mode t)
>>>
>>> in my init, but it had not effect.
>>
>> Indeed, it is a minor mode, so one normally enables it by calling the
>> function completion-preview-mode, perhaps interactively via M-x.
>
> I enable all minor modes as user options, so I'd disagree that using a
> function or invoking the command are the only ways to expect a minor
> mode to be enabled.
Fair enough :)
>>> When I check the implementation, I noticed that it modifies
>>> `post-command-hook' locally. I think it would make sense to rename
>>> the current `completion-preview-mode' to
>>> `completion-preview-local-mode', and then use
>>> `define-globalized-minor-mode' to define `completion-preview-mode'.
>>
>> We can add a global variant, although IMO the natural scope for
>> completion-preview-mode is per major mode: for some kinds of content you
>> want to have completion preview, and for others you may want it off.
>> Note that a necessary condition for completion-preview-mode to be useful
>> in a certain context is that completion-at-point is useful in that
>> context, since otherwise there's nothing to preview.
>>
>> Therefore, I recommend enabling completion-preview-mode by adding it to
>> major mode hooks, such as prog-mode-hook or comint-mode-hook.
>> Admittedly, if you do want to enable it for all buffers, the major mode
>> hook approach would require adding it to four or five hooks, which is a
>> bit less elegant than enabling a global minor mode once.
>>
>> So I suggest we keep completion-preview-mode local and add a global
>> variant, say, completion-preview-global-mode, for enabling it globally.
>> WDYT?
>
> That seems fine as well.
All right, here's a patch that adds such a global variant. I find the
:predicate argument of define-globalized-minor-mode pretty neat, it adds
a user option that lets users choose in which major modes the minor mode
should take effect, and we can provide a sane default:
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Add-global-minor-mode-completion-preview-global-mode.patch --]
[-- Type: text/x-patch, Size: 1037 bytes --]
From caca8078f95b8e2d6c67ada1da6fdb024262c5bc Mon Sep 17 00:00:00 2001
From: Eshel Yaron <me@eshelyaron.com>
Date: Tue, 26 Mar 2024 22:34:51 +0100
Subject: [PATCH] Add global minor mode 'completion-preview-global-mode'
This is a global variant of 'completion-preview-mode'.
* lisp/completion-preview.el (completion-preview-global-mode): New
global minor mode. (Bug#70010)
---
lisp/completion-preview.el | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lisp/completion-preview.el b/lisp/completion-preview.el
index 75386f96429..f8a3c5ac4a2 100644
--- a/lisp/completion-preview.el
+++ b/lisp/completion-preview.el
@@ -414,5 +414,9 @@ completion-preview-mode
(remove-hook 'post-command-hook #'completion-preview--post-command t)
(completion-preview-active-mode -1)))
+(define-globalized-minor-mode completion-preview-global-mode
+ completion-preview-mode completion-preview-mode
+ :predicate '((not minibuffer-mode special-mode) t))
+
(provide 'completion-preview)
;;; completion-preview.el ends here
--
2.44.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* bug#70010: 30.0.50; completion-preview-mode behaves mode-local, but is global
2024-03-26 21:49 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-03-27 7:07 ` Juri Linkov
2024-03-27 9:24 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-27 12:09 ` Eli Zaretskii
1 sibling, 1 reply; 9+ messages in thread
From: Juri Linkov @ 2024-03-27 7:07 UTC (permalink / raw)
To: 70010; +Cc: philipk, me
> +(define-globalized-minor-mode completion-preview-global-mode
> + completion-preview-mode completion-preview-mode
> + :predicate '((not minibuffer-mode special-mode) t))
The naming convention for globalized minor modes suggests
'global-completion-preview-mode'.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#70010: 30.0.50; completion-preview-mode behaves mode-local, but is global
2024-03-27 7:07 ` Juri Linkov
@ 2024-03-27 9:24 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 0 replies; 9+ messages in thread
From: Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-03-27 9:24 UTC (permalink / raw)
To: Juri Linkov; +Cc: 70010, philipk
Juri Linkov <juri@linkov.net> writes:
>> +(define-globalized-minor-mode completion-preview-global-mode
>> + completion-preview-mode completion-preview-mode
>> + :predicate '((not minibuffer-mode special-mode) t))
>
> The naming convention for globalized minor modes suggests
> 'global-completion-preview-mode'.
Indeed. I'm not a big fan of this convention as it violates the
symbol-prefix-as-a-namespace convention, but it does seem prevalent.
So if that's all right with everyone, I'll change the name to
global-completion-preview-mode and push in a day or two.
Best,
Eshel
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#70010: 30.0.50; completion-preview-mode behaves mode-local, but is global
2024-03-26 21:49 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-27 7:07 ` Juri Linkov
@ 2024-03-27 12:09 ` Eli Zaretskii
2024-03-27 16:05 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
1 sibling, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2024-03-27 12:09 UTC (permalink / raw)
To: Eshel Yaron; +Cc: philipk, 70010
> Cc: 70010@debbugs.gnu.org
> Date: Tue, 26 Mar 2024 22:49:04 +0100
> From: Eshel Yaron via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>
> All right, here's a patch that adds such a global variant.
Thanks, but please add a NEWS entry announcing this, and also mention
this variant in the user manual, where completion-preview-mode is
documented.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#70010: 30.0.50; completion-preview-mode behaves mode-local, but is global
2024-03-27 12:09 ` Eli Zaretskii
@ 2024-03-27 16:05 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-31 7:38 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 9+ messages in thread
From: Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-03-27 16:05 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: philipk, 70010
[-- Attachment #1: Type: text/plain, Size: 460 bytes --]
Eli Zaretskii <eliz@gnu.org> writes:
> Thanks, but please add a NEWS entry announcing this, and also mention
> this variant in the user manual, where completion-preview-mode is
> documented.
All right, I'm attaching an updated patch below. Since
'completion-preview-mode' is new in Emacs 30, I extended the existing
NEWS entry with a mention of the global variant, instead of adding
another entry. I've also renamed the global variant per Juri's comment:
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: v2-0001-Add-global-minor-mode-global-completion-preview-m.patch --]
[-- Type: text/x-patch, Size: 2840 bytes --]
From 828544ab372d5e7731772b9854732c9373497903 Mon Sep 17 00:00:00 2001
From: Eshel Yaron <me@eshelyaron.com>
Date: Tue, 26 Mar 2024 22:34:51 +0100
Subject: [PATCH v2] Add global minor mode 'global-completion-preview-mode'
This is a global variant of 'completion-preview-mode'.
* lisp/completion-preview.el (global-completion-preview-mode): New
global minor mode.
* doc/emacs/programs.texi (Symbol Completion): Document it.
* etc/NEWS: Announce it. (Bug#70010)
---
doc/emacs/programs.texi | 11 +++++++----
etc/NEWS | 2 ++
lisp/completion-preview.el | 4 ++++
3 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 1627e7e6cb7..de28a9f1dd4 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -1706,11 +1706,14 @@ Symbol Completion
@cindex suggestion preview
@cindex Completion Preview mode
@findex completion-preview-mode
+@findex global-completion-preview-mode
Completion Preview mode is a minor mode that shows completion
-suggestions as you type. When you enable this mode (with @kbd{M-x
-completion-preview-mode}), Emacs automatically displays the
-suggested completion for text around point as an in-line preview
-right after point; type @key{TAB} to accept the suggestion.
+suggestions as you type. You can enable it for the current buffer with
+@kbd{M-x completion-preview-mode}, or globally with @w{@kbd{M-x
+global-completion-preview-mode}}. When Completion Preview mode is on,
+Emacs automatically displays the suggested completion for text around
+point as an in-line preview right after point; type @key{TAB} to accept
+the suggestion.
@node MixedCase Words
@section MixedCase Words
diff --git a/etc/NEWS b/etc/NEWS
index 60fe75fc340..906bf5a9c3c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1644,6 +1644,8 @@ sexp navigation more intuitive.
This minor mode shows you symbol completion suggestions as you type,
using an inline preview. New user options in the 'completion-preview'
customization group control exactly when Emacs displays this preview.
+'completion-preview-mode' is buffer-local, to enable it globally use
+'global-completion-preview-mode'.
+++
*** New user option 'extended-command-dim-hyphens'.
diff --git a/lisp/completion-preview.el b/lisp/completion-preview.el
index 75386f96429..c9f3a81b879 100644
--- a/lisp/completion-preview.el
+++ b/lisp/completion-preview.el
@@ -414,5 +414,9 @@ completion-preview-mode
(remove-hook 'post-command-hook #'completion-preview--post-command t)
(completion-preview-active-mode -1)))
+(define-globalized-minor-mode global-completion-preview-mode
+ completion-preview-mode completion-preview-mode
+ :predicate '((not minibuffer-mode special-mode) t))
+
(provide 'completion-preview)
;;; completion-preview.el ends here
--
2.44.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* bug#70010: 30.0.50; completion-preview-mode behaves mode-local, but is global
2024-03-27 16:05 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-03-31 7:38 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 0 replies; 9+ messages in thread
From: Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-03-31 7:38 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: philipk, 70010, juri
close 70010 30.1
quit
Eshel Yaron <me@eshelyaron.com> writes:
> Eli Zaretskii <eliz@gnu.org> writes:
>
>> Thanks, but please add a NEWS entry announcing this, and also mention
>> this variant in the user manual, where completion-preview-mode is
>> documented.
>
> All right, I'm attaching an updated patch below. Since
> 'completion-preview-mode' is new in Emacs 30, I extended the existing
> NEWS entry with a mention of the global variant, instead of adding
> another entry. I've also renamed the global variant per Juri's comment:
Now pushed to master (de8cae30bcf), and closing the bug.
Best,
Eshel
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-03-31 7:38 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-26 11:10 bug#70010: 30.0.50; completion-preview-mode behaves mode-local, but is global Philip Kaludercic
2024-03-26 19:10 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-26 19:49 ` Philip Kaludercic
2024-03-26 21:49 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-27 7:07 ` Juri Linkov
2024-03-27 9:24 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-27 12:09 ` Eli Zaretskii
2024-03-27 16:05 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-31 7:38 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
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.