1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-03 06:00:50 -08:00
Commit graph

187 commits

Author SHA1 Message Date
Juri Linkov
4078d0fd3e * doc/lispref/keymaps.texi (Creating Keymaps): Add :repeat :hints (bug#70576). 2024-05-03 09:22:39 +03:00
Po Lu
ecf08f0621 Merge from savannah/emacs-29
dc4e6b1329 ; Update copyright years in more files
64b3777631 ; Run set-copyright from admin.el
8e1c56ae46 ; Add 2024 to copyright years

# Conflicts:
#	doc/misc/modus-themes.org
#	doc/misc/texinfo.tex
#	etc/NEWS
#	etc/refcards/ru-refcard.tex
#	etc/themes/modus-operandi-theme.el
#	etc/themes/modus-themes.el
#	etc/themes/modus-vivendi-theme.el
#	lib/alloca.in.h
#	lib/binary-io.h
#	lib/c-ctype.h
#	lib/c-strcasecmp.c
#	lib/c-strncasecmp.c
#	lib/careadlinkat.c
#	lib/cloexec.c
#	lib/close-stream.c
#	lib/diffseq.h
#	lib/dup2.c
#	lib/filemode.h
#	lib/fpending.c
#	lib/fpending.h
#	lib/fsusage.c
#	lib/getgroups.c
#	lib/getloadavg.c
#	lib/gettext.h
#	lib/gettime.c
#	lib/gettimeofday.c
#	lib/group-member.c
#	lib/malloc.c
#	lib/md5-stream.c
#	lib/md5.c
#	lib/md5.h
#	lib/memmem.c
#	lib/memrchr.c
#	lib/nanosleep.c
#	lib/save-cwd.h
#	lib/sha1.c
#	lib/sig2str.c
#	lib/stdlib.in.h
#	lib/strtoimax.c
#	lib/strtol.c
#	lib/strtoll.c
#	lib/time_r.c
#	lib/xalloc-oversized.h
#	lisp/auth-source-pass.el
#	lisp/emacs-lisp/lisp-mnt.el
#	lisp/emacs-lisp/timer.el
#	lisp/info-look.el
#	lisp/jit-lock.el
#	lisp/loadhist.el
#	lisp/mail/rmail.el
#	lisp/net/ntlm.el
#	lisp/net/webjump.el
#	lisp/progmodes/asm-mode.el
#	lisp/progmodes/project.el
#	lisp/progmodes/sh-script.el
#	lisp/textmodes/flyspell.el
#	lisp/textmodes/reftex-toc.el
#	lisp/textmodes/reftex.el
#	lisp/textmodes/tex-mode.el
#	lisp/url/url-gw.el
#	m4/alloca.m4
#	m4/clock_time.m4
#	m4/d-type.m4
#	m4/dirent_h.m4
#	m4/dup2.m4
#	m4/euidaccess.m4
#	m4/fchmodat.m4
#	m4/filemode.m4
#	m4/fsusage.m4
#	m4/getgroups.m4
#	m4/getloadavg.m4
#	m4/getrandom.m4
#	m4/gettime.m4
#	m4/gettimeofday.m4
#	m4/gnulib-common.m4
#	m4/group-member.m4
#	m4/inttypes.m4
#	m4/malloc.m4
#	m4/manywarnings.m4
#	m4/mempcpy.m4
#	m4/memrchr.m4
#	m4/mkostemp.m4
#	m4/mktime.m4
#	m4/nproc.m4
#	m4/nstrftime.m4
#	m4/pathmax.m4
#	m4/pipe2.m4
#	m4/pselect.m4
#	m4/pthread_sigmask.m4
#	m4/readlink.m4
#	m4/realloc.m4
#	m4/sig2str.m4
#	m4/ssize_t.m4
#	m4/stat-time.m4
#	m4/stddef_h.m4
#	m4/stdint.m4
#	m4/stdio_h.m4
#	m4/stdlib_h.m4
#	m4/stpcpy.m4
#	m4/strnlen.m4
#	m4/strtoimax.m4
#	m4/strtoll.m4
#	m4/time_h.m4
#	m4/timegm.m4
#	m4/timer_time.m4
#	m4/timespec.m4
#	m4/unistd_h.m4
#	m4/warnings.m4
#	nt/configure.bat
#	nt/preprep.c
#	test/lisp/register-tests.el
2024-01-02 10:28:14 +08:00
Po Lu
8e1c56ae46 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
Eli Zaretskii
486094126b Merge from origin/emacs-29
0f361cc985 ; Minor copyedits in description of ':box' face property
46fe7a17f5 Fix dragging mode line on text terminals with a mouse (bu...
12daf386f3 ; * doc/lispref/processes.texi (Network): Fix wording and...
037d858dc1 (rust-ts-mode): Set electric-indent-chars
dc9b733ab8 js-ts-mode: Highlight function parameters inside destruct...
4a72f13bdf js-ts-mode: Highlight property shorthands in assignments
83ed9018ed (js--treesit-font-lock-settings): Highlight parameters in...
ad0f87bb4c (js--treesit-font-lock-settings): Remove some duplicates
71c5f3694f ; Another fix of doc string of 'message-mail-user-agent' ...
04a39353ba ; * lisp/gnus/message.el (message-mail-user-agent): Doc f...
82ddcf37ec ; * doc/lispref/files.texi (Changing Files): Fix last cha...
89068516b3 Don't claim to signal an error when deleting a nonexistin...
4fd254e183 * lisp/indent.el (indent-rigidly): Improve prompt (bug#67...
5f923ff1a6 ; Fix typos
a1f88963f5 rust-ts-mode--comment-docstring: Handle block doc comments
a547b0e2e8 rust-ts-mode--comment-docstring: Fix/improve the previous...
2023-12-09 07:25:21 -05:00
Stefan Kangas
5f923ff1a6 ; Fix typos 2023-12-03 23:31:30 +01:00
Eli Zaretskii
302bc23f7c Merge from origin/emacs-29
755ae813a6 ; Declare some treesit.c functions in typescript-ts-mode.el.
89fa204b70 Fix loss of encrypted data in plstore.el
d9a1175a61 Close SQL database when corresponding 'sqlite-mode' buffe...
cbd8fac283 Fix Unicode normalization of characters
825be05b37 Support one-time passwords in Tramp
f880b94e64 Fix the 'C' and 'c' categories of characters
58fd212d8a Fix Emoji zooming commands
8970cdd009 ; Fix last change.
ba924be452 ; * etc/DEBUG: Improve the redisplay section.
e110312ad9 ; * doc/lispref/minibuf.texi (Text from Minibuffer): Ment...
65f4810003 tsx-ts-mode--font-lock-compatibility-bb1f97b: Improve
6fe11b88ed Avoid using --display in emacsclient to reuse frames on PGTK
2fc7463c0e ; * INSTALL: Don't advertise -O3.  (Bug#65988)
29055412f2 ; Fix doc string of 'lsh'
738d854333 Support emacsclient on Windows with server on GNU or Unix...
f0a89fa1d0 ; * lisp/saveplace.el (save-place-ignore-files-regexp): F...
c9cb8ee0fc Fix defcustom in saveplace.el (Bug#65977)
5ec8be1d58 ; * lisp/subr.el (string-suffix-p, string-prefix-p): Doc ...
809305e6d8 Fix 'window-text-pixel-size' when there are several image...
ea14b0dcc2 : Doc fix.
01e8a0c6cb Doc fix for prettify-symbols-unprettify-at-point
0065621d0d (report_overlay_modification): Fix bug#65929
6cc6455e93 Fix SVG colors (bug#56182)
9396d73942 * doc/emacs/text.texi (Outline Minor Mode): Add a note ab...
a65d1a5a16 Improve documentation of 'list-abbrevs'
5dcc4b7eab Tweak s-p-f for js-ts-mode
1fb2fb501f typescript-ts-mode, tsx-ts-mode: Fix syntax properties fo...
946b395e7e * lisp/progmodes/c-ts-mode.el (c++-ts-mode): Provide (bug...
33ee3e588f Fix regression of treesit_cursor_helper_1
d11d81dfcc ; Fix doc typos (Bug#65868)
6554ec2246 Update docs for passing of Thien-Thi Nguyen
5ab2792d5c Update defvar usage tips example in manual
35d88c657e Document using Flymake together with Eglot
3f04efe9e7 ; * src/font.h (struct font): Comment about use of averag...
459b5f6b6d ; * admin/authors.el (authors-aliases): Update.
0c029ae8bc ; tweak etc/TODO item

# Conflicts:
#	admin/authors.el
#	lisp/subr.el
2023-09-16 07:36:49 -04:00
shynur
d11d81dfcc ; Fix doc typos (Bug#65868) 2023-09-11 17:16:23 +02:00
Po Lu
7196d2d18e Merge remote-tracking branch 'origin/master' into feature/android 2023-07-20 19:52:01 +08:00
Eli Zaretskii
d172cd5985 ; * doc/lispref/keymaps.texi (Modifying Menus): Add cross-references. 2023-07-18 16:17:15 +03:00
Eli Zaretskii
927e8b470f ; * doc/lispref/keymaps.texi (Extended Menu Items): Add @pxref. 2023-07-18 15:57:01 +03:00
Po Lu
7b346b92b4 Improve touch-screen support
* doc/emacs/emacs.texi (Top):
* doc/emacs/input.texi (Other Input Devices): Correctly
capitalize subsection name.
(Touchscreens): Document additional translation.
* doc/lispref/commands.texi (Touchscreen Events): Document that
`touchscreen-end' events now have prefix keys.  Also, describe
mouse emulation and `touchscreen-scroll' events.
* doc/lispref/keymaps.texi (Translation Keymaps): Document
`current-key-remap-sequence'.
* lisp/touch-screen.el (touch-screen-translate-prompt): New
function.
(touch-screen-scroll): New command.  Bind to
`touchscreen-scroll'.
(touch-screen-handle-point-update, touch-screen-handle-point-up)
(touch-screen-handle-touch): Refactor to actually translate
touch screen event sequences, as opposed to looking up commands
and executing them.
(touch-screen-translate-touch): New function.  Bind in
function-key-map to all touch screen events.
(touch-screen-drag-mode-line-1, touch-screen-drag-mode-line)
(touch-screen-tap-header-line): Remove special commands for
dragging the mode line and clicking on the header line.
* lisp/wid-edit.el (widget-button-click): Adjust accordingly.
* src/keyboard.c (access_keymap_keyremap): Bind
`current-key-remap-sequence' to the key sequence being remapped.
(keyremap_step): Give fkey->start and fkey->end to
access_keymap_keyremap.
(head_table): Add imaginary prefix to touchscreen-end events as
well.
(syms_of_keyboard): New variable Vcurrent_key_remap_sequence.
2023-07-16 15:30:01 +08:00
Po Lu
f812d92f67 Merge remote-tracking branch 'origin/master' into feature/android 2023-07-09 08:40:38 +08:00
Eli Zaretskii
40f84e906f ; * doc/lispref/keymaps.texi (Key Binding Commands): Fix typo. 2023-07-07 09:59:52 +03:00
Eli Zaretskii
a30ebe7a55 ; Improve documentation of key-binding commands
* doc/lispref/keymaps.texi (Key Binding Commands): Improve the
documentation of arguments expected by key binding commands.

* lisp/keymap.el (keymap-set, keymap-global-set)
(keymap-local-set, keymap-global-unset, keymap-local-unset)
(keymap-unset, key-parse): Doc fixes.
2023-07-06 11:42:01 +03:00
Po Lu
8ed8f08ed2 Implement a tool bar containing modifier keys
* doc/emacs/frames.texi (Tool Bars): Describe modifier bars.
* doc/lispref/keymaps.texi (Extended Menu Items, Tool Bar):
Document changes to tool bar menu item handling and secondary
tool bars.
* etc/NEWS: Announce changes.
* lisp/simple.el (event-apply-modifier): Correctly apply Ctrl
and Shift modifiers to lower case ASCII key events that already
have other modifiers applied.
* lisp/tool-bar.el (tool-bar--cache-key)
(tool-bar--secondary-cache-key): New defsubsts.
(tool-bar--flush-cache): Flush secondary tool bar cache.
(tool-bar-make-keymap): Include secondary tool bar if necessary.
(tool-bar-make-keymap-1): New arg MAP.  Generate a keymap for
that map if specified, else default to tool-bar-map.
(set-text-conversion-style, tool-bar-apply-modifiers)
(overriding-text-conversion-style)
(tool-bar-event-apply-alt-modifier)
(tool-bar-event-apply-super-modifier)
(tool-bar-event-apply-hyper-modifier)
(tool-bar-event-apply-shift-modifier)
(tool-bar-event-apply-control-modifier)
(tool-bar-event-apply-meta-modifier, modifier-bar-mode): New
functions.
* src/dispextern.h (enum tool_bar_item_idx): Add
TOOL_BAR_ITEM_WRAP.
* src/frame.c (make_frame): Clear new field `tool_bar_wraps_p'.
* src/frame.h (struct frame): New field `tool_bar_wraps_p'.
* src/keyboard.c (parse_tool_bar_item): Handle QCwrap properties
in tool bar menu items.
(syms_of_keyboard): New defsym QCwrap.
* src/xdisp.c (build_desired_tool_bar_string): Clear
f->tool_bar_wraps_p and set it appropriately.  Insert new line
characters in the tool bar string upon encountering a wrap
character.
(display_tool_bar_line): Stop at EOB, not line end.  Reseat on
the next line upon encountering EOL characters.
(redisplay_tool_bar): Allow rows to be different heights if
explicit new lines are present upon the tool bar string.
2023-07-04 16:40:20 +08:00
Eli Zaretskii
aa030698ce ; Fix typos in documented names of keymap-* functions
* doc/lispref/keymaps.texi (Functions for Key Lookup): Fix typos
in function names.  (Bug#64434)
2023-07-03 15:12:12 +03:00
Eli Zaretskii
38cdfcb212 ; Fix description of new 'keymap-*' functions
* doc/lispref/keymaps.texi (Prefix Keys): Fix example (bug#62673).
(Functions for Key Lookup): Clarify the possible values of KEYMAP
argument of 'keymap-lookup'.
(Active Keymaps): Fix typo in function name; add cross-reference.
2023-04-05 11:31:15 +03:00
Robert Pluim
4a6eefb93a Expand defvar-keymap documentation
* doc/lispref/keymaps.texi (Creating Keymaps): Describe the :repeat keyword.
2023-03-21 10:57:39 +01:00
Robert Pluim
6bf441ff11 Warn package authors away from keymap-unset with REMOVE
* doc/lispref/keymaps.texi (Changing Key Bindings): Ask package
authors to not use the REMOVE argument to `keymap-unset'.
2023-03-20 16:21:36 +01:00
Eli Zaretskii
e388a77cf0 ; Minor copyedits of recent changes in ELisp reference manual
* doc/lispref/keymaps.texi (Changing Key Bindings): Fix wording
and markup.
2023-03-18 15:54:35 +02:00
Robert Pluim
e8cee15f78 ; Fix markup in previous change 2023-03-17 14:25:39 +01:00
Robert Pluim
e4a7d0cd6e Document `keymap-unset' in lispref
* doc/lispref/keymaps.texi (Changing Key Bindings): Document
keymap-unset.
2023-03-17 14:18:10 +01:00
Robert Pluim
8904a26a9d Improve `keymap-set-after' documentation
* doc/lispref/keymaps.texi (Changing Key Bindings): Mention `key-valid-p'
(Modifying Menus): Correct description of KEY arg.
2023-01-20 15:14:44 +01:00
Eli Zaretskii
cae528457c ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
Eli Zaretskii
3c5a41b200 ; * doc/lispref/keymaps.texi (Searching Keymaps): Fix a typo (bug#59886). 2022-12-10 15:06:27 +02:00
Lars Ingebrigtsen
87e4922cee Document :vert-only tool bar property
* doc/lispref/keymaps.texi (Tool Bar): Document what :vert-only
does (bug#51049).  This is not what it was intended to do -- but
what it intended to do didn't really make that much sense either,
so perhaps the prop should just be renamed :image-only?
2022-09-12 12:57:34 +02:00
Robert Pluim
bf47851e08 Signal error on duplicate key definitions
* lisp/keymap.el (define-keymap, defvar-keymap): Signal error if the
same key is specified twice.  (Bug#56873)

* doc/lispref/keymaps.texi (Creating Keymaps): Document error
signaling behaviour.

* test/src/keymap-tests.el (keymap-test-duplicate-definitions): Test
duplicate definition detection.
2022-08-02 14:29:43 +02:00
Stefan Kangas
d9bd334ef3 Merge from origin/emacs-28
eb11dae499 Improve documentation of column-related functions
c95a34c960 * src/macfont.m (macfont_open): Initialize font->space_wid...
31a6a37d45 Improve indexing of keymap variables
2022-07-31 06:30:25 +02:00
Eli Zaretskii
31a6a37d45 Improve indexing of keymap variables
* doc/lispref/maps.texi (Standard Keymaps):
* doc/lispref/display.texi (Button Buffer Commands)
(Button Properties):
* doc/lispref/keymaps.texi (Translation Keymaps): Improve indexing
of keymaps.  (Bug#56816)
2022-07-30 09:32:48 +03:00
Eli Zaretskii
e93aa8d586 ; Improve documentation of 'set-transient-map' changes
* lisp/subr.el (set-transient-map-timeout, set-transient-map): Doc
fixes.

* etc/NEWS: Improve wording of the 'set-transient-map' entry.

* doc/lispref/keymaps.texi (Controlling Active Maps): Fix wording
and passive tense, and improve indexing.  (Bug#21634)
2022-07-07 09:29:51 +03:00
Juri Linkov
0e99046d62 Add new args MESSAGE and TIMEOUT to set-transient-map (bug#21634)
* lisp/subr.el (set-transient-map): Add new args MESSAGE and TIMEOUT.
(set-transient-map-timeout, set-transient-map-timer): New variables.

* lisp/international/emoji.el (emoji-zoom-increase):
* lisp/indent.el (indent-rigidly):
* lisp/face-remap.el (text-scale-adjust, global-text-scale-adjust):
Use the arg MESSAGE of set-transient-map.

* doc/lispref/keymaps.texi (Controlling Active Maps): Mention new args
MESSAGE and TIMEOUT of set-transient-map.
2022-07-06 20:39:41 +03:00
Stefan Kangas
616d3c24e2 Document using make-composed-keymap with defvar-keymap
* doc/lispref/keymaps.texi (Inheritance and Keymaps): Document
using 'make-composed-keymap' with 'defvar-keymap'.

* lisp/help-mode.el (help-mode-map): Use defvar-keymap to make this
code match the above documentation change.
2022-07-04 18:19:53 +02:00
Lars Ingebrigtsen
0dc75daf11 Filter out NS non-key events from `where-is-internal'
* doc/lispref/keymaps.texi (Scanning Keymaps): Document it.
* lisp/keymap.el (make-non-key-event): New function.

* lisp/term/common-win.el (x-setup-function-keys): Mark ns events
as not being keys (bug#55940).

* src/keymap.c (Fwhere_is_internal): Filter out key sequences that
are marked as being non-keys.
2022-06-18 14:06:30 +02:00
Paul Eggert
734f0f68a4 Use "@code{nil}" in documentation 2022-04-18 13:19:14 -07:00
Eli Zaretskii
dcd76bd48d Merge from origin/emacs-28
836be7a112 ; * etc/refcards/ru-refcard.tex: Update Copyright year.
86cbc6ee4a * lisp/net/tramp-sh.el: Adapt copyright year
ebe8772f65 ; Minor fixes related to copyright years
23c1ee6989 ; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye...
8d3fc7ec89 * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t.
19dcb237b5 ; Add 2022 to copyright years.

# Conflicts:
#	etc/NEWS
#	etc/refcards/ru-refcard.tex
#	lib/cdefs.h
#	lisp/erc/erc-dcc.el
#	lisp/erc/erc-imenu.el
#	lisp/erc/erc-replace.el
#	lisp/image-dired.el
#	lisp/progmodes/xref.el
#	m4/alloca.m4
#	m4/byteswap.m4
#	m4/errno_h.m4
#	m4/getopt.m4
#	m4/gnulib-common.m4
#	m4/inttypes.m4
#	m4/stddef_h.m4
#	m4/stdint.m4
#	m4/sys_socket_h.m4
2022-01-01 07:03:03 -05:00
Eli Zaretskii
19dcb237b5 ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
Eli Zaretskii
f6e383c8bb Fix documentation of 'define-keymap'
* doc/lispref/keymaps.texi (Creating Keymaps)
(Changing Key Bindings): Fix typos, improve wording.
2021-12-29 19:45:06 +02:00
Eli Zaretskii
1915c19131 Fix recent changes in 'keymap-lookup' documentation
* doc/lispref/keymaps.texi (Functions for Key Lookup): Improve
wording, correct typos.
2021-12-29 19:30:23 +02:00
Lars Ingebrigtsen
0d5bda36fb Document keymap-set-after in Modifying Menus in lispref
* doc/lispref/keymaps.texi (Modifying Menus): Document
keymap-set-after (bug#52819).
2021-12-29 17:20:08 +01:00
Lars Ingebrigtsen
2970dbaa32 Document `keymap-lookup' in the lipsref manual
* doc/lispref/keymaps.texi (Functions for Key Lookup): Document
`keymap-lookup' instead of `lookup-key' (bug#52820).
2021-12-29 17:11:31 +01:00
Lars Ingebrigtsen
ef344cc55c Move define-keymap manual entry to Creating Keymaps
* doc/lispref/keymaps.texi (Creating Keymaps)
(Changing Key Bindings): Move `define-keymap'/`defvar-keymap' to
the Creating Keymaps node.
2021-12-29 16:56:16 +01:00
Stefan Kangas
cf6dc1838a ; Fix spelling; be consistent with "key binding" (Bug#52674) 2021-12-21 11:19:04 +01:00
Lars Ingebrigtsen
1efc14561d Edit the lispref manual for define-key/keymap-set fallout
* doc/lispref/variables.texi (Tips for Defining):
* doc/lispref/text.texi (Clickable Text):
* doc/lispref/modes.texi (Derived Modes):
(Example Major Modes):
* doc/lispref/loading.texi (Autoload):
(Hooks for Loading):
* doc/lispref/keymaps.texi (Creating Keymaps):
(Inheritance and Keymaps):
(Controlling Active Maps):
(Changing Key Bindings):
(Low-Level Key Binding):
(Remapping Commands):
(Translation Keymaps):
(Key Binding Commands):
* doc/lispref/help.texi (Help Functions):
* doc/lispref/display.texi (Abstract Display Example):
* doc/lispref/commands.texi (Interactive Codes):
(Keyboard Events):
(Misc Events):
(Classifying Events):
(Strings of Events): Prefer `keymap-set' instead of `define-key'
most places, and use `defvar-keymap' in some of the examples.
2021-11-29 23:55:00 +01:00
Eli Zaretskii
4f47f10d9f Put back documentation of legacy keymap functions
* doc/lispref/keymaps.texi (Low-Level Key Binding): Reinstate
documentation of legacy commands and functions.
2021-11-16 19:14:04 +02:00
Eli Zaretskii
9e2f59132d Minor copyedits of recent documentation changes
* doc/lispref/keymaps.texi (Low-Level Key Binding): Minor changes
in wording and markup.
2021-11-16 16:17:10 +02:00
Lars Ingebrigtsen
331366395e Start adjusting the manuals to talk about the keymap-* functions
* lisp/dired.el (dired--make-directory-clickable):
* doc/lispref/keymaps.texi (Keymaps):
(Key Sequences):
(Prefix Keys):
(Active Keymaps):
(Key Lookup):
(Functions for Key Lookup):
(Changing Key Bindings):
(Key Binding Commands):
(Tool Bar):
* doc/lispref/commands.texi (Interactive Codes):
(Event Examples):
(Event Mod):
* doc/emacs/kmacro.texi (Save Keyboard Macro):
* doc/emacs/custom.texi (Keymaps):
(Keymaps):
(Minibuffer Maps):
(Rebinding):
(Init Rebinding):
(Modifier Keys):
(Mouse Buttons):
(Init Examples):
(Init Non-ASCII): Adjust the documentation to remove description
of the old syntaxes, and use the new keymap-* functions.

* doc/lispref/keymaps.texi (Low-Level Key Binding): New node that
describes `define-key' and the old key syntaxes.
2021-11-16 08:26:24 +01:00
Lars Ingebrigtsen
e36d3fc452 Support a new ["..."] key binding syntax
* doc/lispref/keymaps.texi (Key Sequences):
(Changing Key Bindings): Document the various key syntaxes.

* lisp/emacs-lisp/byte-opt.el (byte-optimize-define-key)
(byte-optimize-define-keymap)
(byte-optimize-define-keymap--define): New functions to check and
expand ["..."] syntax at compile time.

* src/keymap.c (Fdefine_key): Understand the ["..."] syntax.
(syms_of_keymap): Define `kbd' symbols.
2021-10-17 20:51:31 +02:00
Lars Ingebrigtsen
4c468c6b3c Add new function 'kbd-valid-p'
* doc/lispref/keymaps.texi (Key Sequences): New function
'kbd-valid-p'.

* lisp/subr.el (kbd-valid-p): Document it.
2021-10-16 17:50:40 +02:00
Lars Ingebrigtsen
74d3a1e7d6 Allow :keys in menus to be computed dynamically
* doc/lispref/keymaps.texi (Extended Menu Items): Document it
(bug#28930).

* src/keyboard.c (parse_menu_item): Allow :keys to be a function.
2021-10-11 13:15:41 +02:00
Lars Ingebrigtsen
4103123806 Change the call convention for `defvar-keymap'
* doc/lispref/keymaps.texi (Changing Key Bindings): Adjust
documentation.

* lisp/simple.el (special-mode-map):
* lisp/net/shr.el (shr-map):
* lisp/net/eww.el (eww-link-keymap):
(eww-mode-map):
(eww-submit-map):
(eww-textarea-map):
(eww-bookmark-mode-map):
(eww-history-mode-map):
(eww-buffers-mode-map):
* lisp/gnus/message.el (message-mode-map):
* lisp/gnus/gnus-html.el (gnus-html-image-map):
* lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map):
* lisp/gnus/gnus-dired.el (gnus-dired-mode-map):
* lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map):
Adjust usage of `defvar-keymap'.

* lisp/subr.el (define-keymap, define-keymap--define): Change how
these functions call each other.
(defvar-keymap): Change interface to be more like `define-keymap'.

* lisp/emacs-lisp/lisp-mode.el (lisp-indent--defvar-keymap): Remove.
(lisp-indent-function): Don't use it.
2021-10-05 10:34:37 +02:00