emacs/etc
Stephen Berman 77ca60b48d Navigate *Completions* buffer based on 'completions-format'
This patch makes 'next-completion' and 'previous-completion' work
in the vertical completions format analogously to how they work in
the default horizontal format (bug#78959).  It also fixes wrapping
in the vertical format and confines navigation (including
wrapping) in column-wise movement in the vertical format to the
current line, analogously to how navigation (including wrapping)
in line-wise movement in the horizontal format is confined to the
current column.

* doc/emacs/mini.texi (Completion): Fix several typos and improve
wording is several places.
(Completion Commands): Document navigation of the *Completions*
buffer in the vertical format.  Document the difference between
format-sensitive movement and strictly column-wise or line-wise
movement.  Document 'minibuffer-complete-and-exit' and update the
documentation of 'minibuffer-completion-auto-choose' and
'minibuffer-choose-completion'.  Document the use of a numeric
prefix argument with the navigation commands.
(Completion Options): Rearrange and improve documentation of
'completions-sort', 'completions-format' and
'completion-auto-wrap', updating the latter to document the new
behavior.

* lisp/minibuffer.el (minibuffer-visible-completions-map): Rebind
"<left>" to 'minibuffer-previous-column-completion' and "<right>"
to 'minibuffer-next-column-completion'.
(minibuffer-next-completion): Add check for whether completions
format is vertical to decide whether to call
'next-line-completion' and replace calling 'next-completion' by
'next-column-completion'.
(minibuffer-next-column-completion)
(minibuffer-previous-column-completion): New commands.

* lisp/simple.el (completion-list-mode-map): Rebind "<left>" to
'previous-column-completion' and "<right>" to 'next-column-completion'.
(last-completion): Add handling for vertical completions format.
(completion--move-to-candidate-end): Always move point to the
position immediately after the last character of the completion
candidate.  This unifies the behavior, simplifies the
implementation and facilitates implementing the improved
navigation of the *Completions* buffer.
(previous-column-completion, next-column-completion): New
commands, replacing the previous definitions of
'previous-completion' and 'next-completion' to reflect their
column-wise operation.  Confine navigation (including wrapping) in
vertical format to the current line.
(previous-line-completion, next-line-completion): Implement
line-wise navigation (including wrapping) through all completions
in vertical format, not just those in the current column as in
horiztonal format.  Update doc strings.
(next-completion, previous-completion): Redefine to call
'{next,previous}-line-completion' when completions format is
vertical and '{next,previous}-column-completion' otherwise.

* test/lisp/minibuffer-tests.el
(completions-format-navigation--tests): New function providing a
template to define tests of the navigation and wrapping behavior
with specified numbers of completion candidates.
(completions-format-navigation-test-{2,3,4,5,10,15,16}): New tests.
2025-09-22 16:04:42 +02:00
..
charsets Update copyright year to 2025 2025-01-02 18:39:42 +01:00
e Add auto-margin enable/disable to term 2025-03-02 16:01:13 -05:00
forms Update copyright year to 2025 2025-01-02 18:39:42 +01:00
gnus
images tab-line: Add close button for modified tabs (bug#79046) 2025-07-31 21:35:50 +03:00
nxml
org Update copyright year to 2025 2025-01-02 18:39:42 +01:00
refcards ; Fix copyright years of the Spanish translations 2025-03-04 03:08:31 +01:00
schema 'nxml-mode': add schema for .NET SLNX files. 2025-09-06 12:27:29 +03:00
srecode Update copyright year to 2025 2025-01-02 18:39:42 +01:00
themes Merge from origin/emacs-30 2025-07-19 06:56:58 -04:00
tutorials Fix copyright years by hand 2025-01-02 18:44:48 +01:00
AUTHORS Update files for Emacs 30.2 2025-08-14 04:05:28 -04:00
CALC-NEWS Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ChangeLog.1 ; Delete troff markers from ChangeLog files 2025-02-20 02:46:43 +01:00
compilation.txt Support Rust compiler messages in compile mode (bug#70794). 2025-05-22 11:53:34 +02:00
COPYING Merge from Gnulib 2017-10-01 18:31:10 -07:00
copyright-assign.txt Add assignment form as etc/copyright-assign.txt 2024-06-23 00:24:31 +02:00
DEBUG ; Fix last change 2025-08-07 16:38:02 +03:00
DEVEL.HUMOR ; Fix punctuation in etc/* 2024-07-27 01:51:47 +02:00
DISTRIB Update copyright year to 2025 2025-01-02 18:39:42 +01:00
edt-user.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
EGLOT-NEWS Eglot: improve diagnostic-reporting performance 2025-04-29 12:23:06 +01:00
emacs-buffer.gdb Update copyright year to 2025 2025-01-02 18:39:42 +01:00
emacs-mail.desktop Hide emacs-mail.desktop, emacsclient-mail.desktop from menus 2021-07-02 13:09:18 +02:00
emacs.desktop Drop redundant keywords in .desktop files. 2021-08-11 14:05:25 +02:00
emacs.icon
emacs.metainfo.xml Provide Open Age Ratings Service metadata 2025-04-19 16:43:23 +03:00
emacs.service * etc/emacs.service: 2020-12-14 17:59:58 +01:00
emacs_lldb.py Update copyright year to 2025 2025-01-02 18:39:42 +01:00
emacsclient-mail.desktop Add 'server-eval-args-left' to server.el 2023-10-29 14:10:23 +02:00
emacsclient.desktop Make emacsclient handle org-protocol:// links 2023-09-18 12:54:22 +02:00
enriched.txt Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ERC-NEWS Remove scrolltobottom dependency from erc-fill module 2025-08-25 21:17:48 -07:00
ETAGS.EBNF Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ETAGS.README Update copyright year to 2025 2025-01-02 18:39:42 +01:00
future-bug ; Fix typos 2025-01-23 03:14:37 +01:00
gnus-tut.txt Update copyright year to 2025 2025-01-02 18:39:42 +01:00
grep.txt Update copyright year to 2025 2025-01-02 18:39:42 +01:00
HELLO Update copyright year to 2025 2025-01-02 18:39:42 +01:00
HISTORY Update files for Emacs 30.2 2025-08-14 04:05:28 -04:00
JOKES
MACHINES Delete duplicate note on ancient platforms 2025-01-05 05:32:01 +01:00
MH-E-NEWS Update copyright year to 2025 2025-01-02 18:39:42 +01:00
NEWS Navigate *Completions* buffer based on 'completions-format' 2025-09-22 16:04:42 +02:00
NEWS.1-17 Update copyright year to 2025 2025-01-02 18:39:42 +01:00
NEWS.18 Update copyright year to 2025 2025-01-02 18:39:42 +01:00
NEWS.19 ; Move time-stamp release info from symbol-releases.eld to NEWS 2025-03-23 10:39:52 -07:00
NEWS.20 ; Move time-stamp release info from symbol-releases.eld to NEWS 2025-03-23 10:39:52 -07:00
NEWS.21 ; Fix capitalization of VC-Dir. 2025-08-10 12:20:42 +01:00
NEWS.22 Update copyright year to 2025 2025-01-02 18:39:42 +01:00
NEWS.23 Update copyright year to 2025 2025-01-02 18:39:42 +01:00
NEWS.24 Update copyright year to 2025 2025-01-02 18:39:42 +01:00
NEWS.25 Fix capitalization ELisp -> Elisp 2025-03-12 09:38:33 +08:00
NEWS.26 Fix capitalization ELisp -> Elisp 2025-03-12 09:38:33 +08:00
NEWS.27 Update copyright year to 2025 2025-01-02 18:39:42 +01:00
NEWS.28 Fix capitalization ELisp -> Elisp 2025-03-12 09:38:33 +08:00
NEWS.29 ; Grammar fixes for "native-compiled" 2025-02-28 20:20:55 +01:00
NEWS.30 Merge from origin/emacs-30 2025-08-16 13:35:00 +02:00
NEXTSTEP Update copyright year to 2025 2025-01-02 18:39:42 +01:00
NXML-NEWS Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ORG-NEWS ; Fix typos 2025-02-22 14:48:29 +01:00
org.gnu.emacs.defaults.gschema.xml Update copyright year to 2025 2025-01-02 18:39:42 +01:00
package-keyring.gpg * etc/package-keyring.gpg: Update expiration and add new key 2024-10-22 12:35:18 -04:00
PROBLEMS Context menu related fixes (bug#64980) 2025-09-16 19:48:43 +03:00
ps-prin0.ps Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ps-prin1.ps Update copyright year to 2025 2025-01-02 18:39:42 +01:00
publicsuffix.txt ; * etc/publicsuffix.txt: Update from upstream. 2024-12-22 13:50:41 +02:00
README Update copyright year to 2025 2025-01-02 18:39:42 +01:00
rgb.txt Revert "Update etc/rgb.txt from X.Org upstream" 2023-10-16 08:56:53 +08:00
ses-example.ses Update copyright year to 2025 2025-01-02 18:39:42 +01:00
spook.lines Add more spook.lines 2019-07-13 05:09:45 +02:00
symbol-releases.eld ; * etc/symbol-releases.eld (dired-click-to-select-mode): Add. 2025-08-23 16:34:43 +03:00
TERMS Update copyright year to 2025 2025-01-02 18:39:42 +01:00
TODO ; Replace "Elisp" with "Lisp" or "Emacs Lisp" in some places 2025-03-12 10:24:22 +08:00
w32-feature.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
yow.lines

This directory contains the architecture-independent files used by or
with Emacs.  This includes some text files of documentation for GNU
Emacs or of interest to Emacs users, and the file of dumped docstrings
for Emacs functions and variables.

COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES

File: emacs.icon
  Author: Sun Microsystems, Inc
  Copyright (C) 1999, 2001-2025 Free Software Foundation, Inc.
  License: GNU General Public License version 3 or later (see COPYING)