aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/keymap.el (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Improve documentation of 'define-keymap'Eli Zaretskii2 days1-1/+2
| | | | | | * lisp/emacs-lisp/shortdoc.el (keymaps): Add example for adding key bindings to an existing keymap. * lisp/keymap.el (define-keymap): Doc fix. (Bug#80556)
* ; Add 2026 to copyright years.Sean Whitton2026-01-011-1/+1
|
* Improve error message for invalid key syntaxRobert Pluim2025-11-061-2/+2
| | | | | * lisp/keymap.el: (keymap--compile-check, define-keymap--compile): Mention 'key-valid-p' rather than 'kbd'.
* (read-only-keymap-*): Be more careful with the namespaceStefan Monnier2025-10-121-4/+7
| | | | | | | | | | * lisp/keymap.el (keymap-read-only-bind): Rename from `read-only-keymap-bind`. Improve docstring. (keymap--read-only-filter): Rename from `read-only-keymap-filter`. * lisp/net/goto-addr.el (goto-address-highlight-keymap): * lisp/progmodes/bug-reference.el (bug-reference-map): * lisp/net/browse-url.el (browse-url-button-map): * lisp/ansi-osc.el (ansi-osc-hyperlink-map): Adjust accordingly.
* defvar-keymap: New ':prefix t' abbreviationSean Whitton2025-10-061-7/+19
| | | | | | | | | | * lisp/keymap.el (defvar-keymap): New ':prefix t' abbreviation. * lisp/emacs-lisp/helper.el (Helper-help-map): * lisp/vc/pcvs.el (cvs-mode-diff-map): * lisp/vc/vc-hooks.el (vc-prefix-map): * lisp/vcursor.el (vcursor-map): Use it. * doc/lispref/keymaps.texi (Creating Keymaps): * etc/NEWS: Document it.
* * lisp/keymap.el (read-only-keymap-bind): The remaining fix.Juri Linkov2025-09-221-1/+1
| | | | Replace 'browse-url-keymap-filter' with 'read-only-keymap-filter'.
* Fix bootstrap and prevent browse-url from preloading numerous filesPo Lu2025-09-221-0/+13
| | | | | | | | | | * lisp/keymap.el (read-only-keymap-filter) (read-only-keymap-bind): New functions, removed from browse-url.el. * lisp/net/browse-url.el (browse-url-keymap-filter) (browse-url-keymap-bind): Move to keymap.el. All callers changed.
* Merge from origin/emacs-30Eli Zaretskii2025-06-141-1/+5
|\ | | | | | | | | | | | | | | | | | | df3fb94f091 Insert missing step to make use of directory tracking OSC... 1bed2949583 * lisp/keymap.el (keymap-set): Refer to 'key-description'... 941158fc133 Support new tree-sitter grammar filename format (bug#78754) 888f846d377 Fix crash when evaluating "(signal nil 5)" (bug#78738) 51b9e92ab8e Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... c0a913ea4f3 ; * doc/lispref/modes.texi (Font Lock Basics): Remove old... 37de076017a Adapt emba integration (don't merge)
| * * lisp/keymap.el (keymap-set): Refer to 'key-description'. (Bug#78714)Robert Pluim2025-06-111-1/+5
| |
* | Improve repeat-continue property handlingPaul Nelson2025-06-111-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/repeat.el (repeat-get-map-sym): Support 'repeat-continue' property value of t to continue any active repeat map (suggested by Karthik Chikmagalur <karthikchikmagalur@gmail.com>). Simplify logic so that repeat-continue does not interfere with repeat-map activation. (repeat-check-map): Allow commands with 'repeat-continue' property value of t to continue without checking the key. (repeat-mode): Update and tweak docstring. * lisp/bind-key.el (bind-keys-form): Update handling of ':continue-only' keyword: only add keymap to 'repeat-continue' if current value is a list. (bind-keys): Update documentation, mirroring bind-keys-form. * lisp/keymap.el (defvar-keymap): Update handling of ':continue' keyword: only add keymap to 'repeat-continue' if current value is a list. * test/lisp/repeat-tests.el (repeat-tests-continue) (repeat-tests-continue-another): Enable previously commented tests that now work correctly. * etc/NEWS: Update announcement of 'repeat-continue' (bug#78742).
* | Merge from origin/emacs-30Eli Zaretskii2025-01-251-0/+3
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 67903f5909d Restore the old behavior of `bookmark-write-file' 062da7003f9 ; Improve prompts and error messages in 'info-look' 52dc01f1c8b ; * admin/admin.el (set-version): Note about Android. fb282da2a07 Avoid double spaces around abbrevations in Texinfo bc1ab8ac3d8 ; * doc/emacs/custom.texi (Init Rebinding): Fix spacing. b41ef43af19 ; Fix previous change 5638b1d6bd4 Ispell: Use "personal dictionary" terminology consistently cc791e7499f ; Check man pages for mistakes less frequently 4ed4792e3b9 ; * admin/release-process: Minor copy-edits. 4a867c823b7 Add language server "ruff server" for Python 9e687c2871f Fix go-ts-mode type declaration indentation (Bug#75785) f751b3afa4f ; Minor improvements for doc strings in map.el cda78edc7d9 ; Fix typos ce50a1d3c18 ; * src/w32.c (w32_memory_info): Fix coding style of last... 58d3d4820ad Fix bug in w32_memory_info 77386412050 Avoid crashes in redisplay due to problematic font setups 0e3687e6006 Improve 'key-valid-p' docstring 9878092d2b9 Minor copyedits in internals.texi 4726900fdc5 Better document side-effect free and pure C functions 04c475a39f2 ; Fix documentation about faces of tool-tip text # Conflicts: # admin/codespell/codespell.exclude
| * Improve 'key-valid-p' docstringRobert Pluim2025-01-201-0/+3
| | | | | | | | | | | | | | * lisp/keymap.el (key-valid-p): Add "RET", "<return>", and "C-m" examples. (Bug#75586)
* | Merge from origin/emacs-30Eli Zaretskii2025-01-111-5/+10
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d66b8d4becb Fix checkbox's child creation 26c5fadf474 Document that 'package-vc' doesn't support built-in packages ee61b9a050b ; Fix documentation of completion commands ce43d13593a ; Simplify admin/run-codespell fa1470d0699 ; Remove duplicated word in files.el Commentary dabaea97465 Improve checkdoc-common-verbs-wrong-voice docstring 6de2ee5663d Document string-as-{unibyte,multibyte} as obsolete in manual 7f76f872ebf Fix go-ts-mode var spec indentation (Bug#75362) 01464fc882d Add "text" as a thing in tsx-ts-mode 59c57337923 Improve doc string of 'package-delete' 313a191d047 ; * admin/MAINTAINERS: Remove Kelvin White. 002960ceabf Clarify that 'mac' line ending convention is not used on ... 4210e065648 Add language server for Odin ee1034422b0 ; Improve documentation of function-type display 1c49edc4080 Modernize "Commentary" section of files.el 505c1123e18 * INSTALL: Add advice how to invoke 'make install'. (Bug... 82e16cae9cc Improve the documentation of 'key-valid-p' # Conflicts: # etc/NEWS # lisp/progmodes/typescript-ts-mode.el
| * Improve the documentation of 'key-valid-p'Hong Xu2025-01-051-5/+10
| | | | | | | | | | | | | | * lisp/keymap.el (key-valid-p): Add an function key and mouse button example. Mention '<left>' as a cursor control key instead of a function key. Briefly explain what an event may be. (Bug#75366)
| * Update copyright year to 2025Stefan Kangas2025-01-021-1/+1
| | | | | | | | Run "TZ=UTC0 admin/update-copyright".
* | Update copyright year to 2025Paul Eggert2025-01-011-1/+1
| | | | | | | | Run "TZ=UTC0 admin/update-copyright".
* | Rename the property 'repeat-continue-only' to 'repeat-continue'Juri Linkov2024-12-171-5/+5
| | | | | | | | | | | | | | | | | | * doc/lispref/keymaps.texi (Creating Keymaps): * lisp/keymap.el (defvar-keymap): * lisp/repeat.el (repeat-get-map, describe-repeat-maps): * test/lisp/repeat-tests.el (repeat-tests-another-repeat-map) (repeat-tests-repeat-map): Replace 'repeat-continue-only' with 'repeat-continue' (bug#74140).
* | Add new keyword :continue-only to defvar-keymap for repeat-mode (bug#74140)Juri Linkov2024-12-031-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/keymaps.texi (Creating Keymaps): Add :continue-only to :repeat part of defvar-keymap. * lisp/keymap.el (defvar-keymap): Add support for new :repeat keyword :continue-only. * lisp/repeat.el (repeat-post-hook): The property 'repeat-continue-only' is handled as a list of repeat-maps. * test/lisp/repeat-tests.el (repeat-tests-repeat-map): Use new :repeat keyword :continue-only.
* | Mark if-let and when-let obsoleteSean Whitton2024-10-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/subr.el (if-let*, when-let*, if-let, when-let): Mark if-let and when-let obsolete (bug#73853 and elsewhere). Move docstring text around so that if-let* and when-let* descriptions no longer refer to if-let and when-let. * etc/NEWS: Announce the change. * admin/admin.el (reminder-for-release-blocking-bugs): * doc/misc/erc.texi (display-buffer): * lisp/ansi-color.el (ansi-color-apply) (ansi-color--face-vec-face): * lisp/ansi-osc.el (ansi-osc-apply-on-region) (ansi-osc-hyperlink): * lisp/arc-mode.el (archive-goto-file) (archive-next-file-displayer): * lisp/auth-source-pass.el (auth-source-pass-search) (auth-source-pass--parse-data) (auth-source-pass--find-match-many): * lisp/autorevert.el (auto-revert-notify-rm-watch): * lisp/buff-menu.el (Buffer-menu-unmark-all-buffers) (Buffer-menu-group-by-root): * lisp/calendar/parse-time.el (parse-iso8601-time-string): * lisp/cedet/pulse.el (pulse-tick): * lisp/comint.el (comint--fontify-input-ppss-flush-indirect) (comint--intersect-regions): * lisp/completion-preview.el (completion-preview--try-table) (completion-preview--capf-wrapper, completion-preview--update): * lisp/cus-edit.el (setopt--set) (custom-dirlocals-maybe-update-cons, custom-dirlocals-validate): * lisp/custom.el (load-theme): * lisp/descr-text.el (describe-char): * lisp/desktop.el (desktop--emacs-pid-running-p): * lisp/dired-x.el (menu): * lisp/dired.el (dired-font-lock-keywords) (dired-insert-directory, dired--insert-disk-space, dired-mode): * lisp/dnd.el (dnd-handle-multiple-urls): * lisp/dom.el (dom-remove-attribute): * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): * lisp/emacs-lisp/bytecomp.el (bytecomp--custom-declare): * lisp/emacs-lisp/comp-common.el (comp-function-type-spec): * lisp/emacs-lisp/comp-cstr.el (comp--all-classes) (comp-cstr-set-range-for-arithm, comp--cstr-union-1-no-mem) (comp-cstr-intersection-no-mem, comp-cstr-fixnum-p) (comp-cstr-type-p): * lisp/emacs-lisp/comp-run.el (comp-subr-trampoline-install) (native--compile-async): * lisp/emacs-lisp/comp.el (comp--get-function-cstr) (comp--function-pure-p, comp--intern-func-in-ctxt) (comp--addr-to-bb-name, comp--emit-assume, comp--maybe-add-vmvar) (comp--add-call-cstr, comp--compute-dominator-tree) (comp--dom-tree-walker, comp--ssa-rename) (comp--function-call-maybe-fold, comp--fwprop-call) (comp--call-optim-func): * lisp/emacs-lisp/edebug.el (edebug-global-prefix) (edebug-remove-instrumentation): * lisp/emacs-lisp/eieio.el (initialize-instance): * lisp/emacs-lisp/ert-x.el (ert-resource-directory): * lisp/emacs-lisp/ert.el (ert--expand-should-1) (ert-test-location, ert-write-junit-test-report) (ert-test--erts-test): * lisp/emacs-lisp/icons.el (icon-complete-spec, icon-string) (icons--create): * lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload) (loaddefs-generate--parse-file): * lisp/emacs-lisp/multisession.el (multisession-edit-mode--revert, multisession-edit-value): * lisp/emacs-lisp/package-vc.el (package-vc--read-archive-data) (package-vc--version, package-vc--clone): * lisp/emacs-lisp/package.el (package--reload-previously-loaded): * lisp/emacs-lisp/pp.el (pp--insert-lisp): * lisp/emacs-lisp/subr-x.el (add-display-text-property): * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print): * lisp/emacs-lisp/timer.el (run-at-time): * lisp/emacs-lisp/vtable.el (vtable-goto-table) (vtable-goto-column, vtable-update-object, vtable--insert-line) (vtable--compute-widths, vtable--make-keymap): * lisp/emacs-lisp/warnings.el (display-warning): * lisp/epa-file.el (epa-file-insert-file-contents): * lisp/epa.el (epa-show-key): * lisp/erc/erc-backend.el (erc--split-line, erc--conceal-prompt) (PRIVMSG, erc--get-isupport-entry): * lisp/erc/erc-button.el (erc-button-add-nickname-buttons) (erc--button-next): * lisp/erc/erc-common.el (erc--find-group): * lisp/erc/erc-fill.el (erc-fill, erc-fill-static) (erc-fill--wrap-escape-hidden-speaker) (erc-fill--wrap-unmerge-on-date-stamp) (erc-fill--wrap-massage-initial-message-post-clear) (erc-fill-wrap, erc-fill--wrap-rejigger-region): * lisp/erc/erc-goodies.el (erc--scrolltobottom-all) (erc--keep-place-indicator-on-window-buffer-change) (keep-place-indicator, erc--keep-place-indicator-adjust-on-clear) (erc-keep-place-move, erc--command-indicator-display): * lisp/erc/erc-ibuffer.el (erc-members): * lisp/erc/erc-join.el (erc-join--remove-requested-channel) (erc-autojoin--join): * lisp/erc/erc-networks.el (erc-networks--id-qualifying-init-parts, erc-networks--id-reload) (erc-networks--id-ensure-comparable) (erc-networks--reclaim-orphaned-target-buffers) (erc-networks--server-select): * lisp/erc/erc-nicks.el (erc-nicks-invert) (erc-nicks--redirect-face-widget-link, erc-nicks--highlight) (erc-nicks--highlight-button) (erc-nicks--list-faces-help-button-action, erc-nicks-list-faces) (erc-nicks-refresh, erc-nicks--colors-from-faces) (erc-nicks--track-prioritize) (erc-nicks--remember-face-for-track): * lisp/erc/erc-notify.el (querypoll, erc--querypoll-get-next) (erc--querypoll-on-352, erc--querypoll-send): * lisp/erc/erc-sasl.el (erc-sasl--read-password): * lisp/erc/erc-services.el (erc-services-issue-ghost-and-retry-nick): * lisp/erc/erc-speedbar.el (erc-speedbar--ensure, nickbar) (erc-speedbar-toggle-nicknames-window-lock) (erc-speedbar--compose-nicks-face): * lisp/erc/erc-stamp.el (erc-stamp--recover-on-reconnect) (erc-stamp-prefix-log-filter, erc--conceal-prompt) (erc--insert-timestamp-left, erc-insert-timestamp-right) (erc-stamp--defer-date-insertion-on-post-modify) (erc-insert-timestamp-left-and-right) (erc-stamp--redo-right-stamp-post-clear) (erc-stamp--reset-on-clear, erc-stamp--dedupe-date-stamps): * lisp/erc/erc-status-sidebar.el (bufbar) (erc-status-sidebar-prefer-target-as-name) (erc-status-sidebar-default-allsort, erc-status-sidebar-click): * lisp/erc/erc-track.el (erc-track--shortened-names-get) (erc-track--setup, erc-track--select-mode-line-face) (erc-track-modified-channels, erc-track--collect-faces-in) (erc-track--switch-buffer, erc-track--replace-killed-buffer): * lisp/erc/erc-truncate.el (erc-truncate--setup) (erc-truncate-buffer): * lisp/erc/erc.el (erc--ensure-query-member) (erc--ensure-query-members, erc--remove-channel-users-but) (erc--cusr-change-status, erc--find-mode, erc--update-modules) (erc-log-irc-protocol, erc--refresh-prompt) (erc--restore-important-text-props) (erc--order-text-properties-from-hash, erc-send-input-line) (erc-cmd-IGNORE, erc--unignore-user, erc-cmd-QUERY) (erc-cmd-BANLIST, erc--speakerize-nick) (erc--format-speaker-input-message, erc-channel-receive-names) (erc-send-current-line, erc-format-target-and/or-network) (erc-kill-buffer-function, erc-restore-text-properties) (erc--get-eq-comparable-cmd): * lisp/eshell/em-alias.el (eshell-maybe-replace-by-alias--which) (eshell-maybe-replace-by-alias): * lisp/eshell/em-glob.el (eshell-glob-convert): * lisp/eshell/em-pred.el (eshell-pred-user-or-group) (eshell-pred-file-time, eshell-pred-file-type) (eshell-pred-file-mode, eshell-pred-file-links) (eshell-pred-file-size): * lisp/eshell/em-prompt.el (eshell-forward-paragraph) (eshell-next-prompt): * lisp/eshell/esh-arg.el (eshell-resolve-current-argument): * lisp/eshell/esh-cmd.el (eshell-do-eval, eshell/which) (eshell-plain-command--which, eshell-plain-command): * lisp/eshell/esh-io.el (eshell-duplicate-handles) (eshell-protect-handles, eshell-get-target, eshell-close-target): * lisp/eshell/esh-proc.el (eshell-sentinel): * lisp/eshell/esh-var.el (eshell-parse-variable-ref) (eshell-get-variable, eshell-set-variable): * lisp/faces.el (face-at-point): * lisp/ffap.el (ffap-in-project): * lisp/filenotify.el (file-notify--rm-descriptor): * lisp/files-x.el (read-dir-locals-file) (connection-local-update-profile-variables) (connection-local-value): * lisp/files.el (file-remote-p, abbreviate-file-name) (set-auto-mode, hack-local-variables) (revert-buffer-restore-read-only): * lisp/find-dired.el (find-dired-sort-by-filename): * lisp/font-lock.el (font-lock--filter-keywords): * lisp/gnus/gnus-art.el (article-emojize-symbols): * lisp/gnus/gnus-int.el (gnus-close-server): * lisp/gnus/gnus-search.el (gnus-search-transform) (gnus-search-indexed-parse-output, gnus-search-server-to-engine): * lisp/gnus/gnus-sum.el (gnus-collect-urls, gnus-shorten-url): * lisp/gnus/gnus.el (gnus-check-backend-function): * lisp/gnus/message.el (message-send-mail): * lisp/gnus/mml.el (mml-generate-mime, mml-insert-mime-headers): * lisp/gnus/nnatom.el (nnatom--read-feed, nnatom--read-article) (nnatom--read-article-or-group-authors, nnatom--read-publish) (nnatom--read-update, nnatom--read-links): * lisp/gnus/nnfeed.el (nnfeed--read-server, nnfeed--write-server) (nnfeed--parse-feed, nnfeed--group-data, nnfeed-retrieve-article) (nnfeed-retrieve-headers, nnfeed--print-part) (nnfeed-request-article, nnfeed-request-group) (nnfeed-request-list, nnfeed--group-description) (nnfeed-request-group-description) (nnfeed-request-list-newsgroups, nnfeed-request-rename-group): * lisp/gnus/nnmh.el (nnmh-update-gnus-unreads): * lisp/help-fns.el (help-find-source) (help-fns--insert-menu-bindings, help-fns--mention-first-release) (help-fns--mention-shortdoc-groups) (help-fns--customize-variable-version) (help-fns--face-custom-version-info, describe-mode): * lisp/help-mode.el (help-make-xrefs): * lisp/help.el (help-key-description, help--describe-command): * lisp/hfy-cmap.el (htmlfontify-load-rgb-file): * lisp/ibuf-ext.el (ibuffer-jump-to-filter-group) (ibuffer-kill-filter-group, ibuffer-kill-line) (ibuffer-save-filter-groups, ibuffer-save-filters, filename) (basename, file-extension, ibuffer-diff-buffer-with-file-1) (ibuffer-mark-by-file-name-regexp) (ibuffer-mark-by-content-regexp): * lisp/ibuf-macs.el (ibuffer-aif, ibuffer-awhen): * lisp/ibuffer.el (ibuffer-mouse-toggle-mark) (ibuffer-toggle-marks, ibuffer-mark-interactive) (ibuffer-compile-format, process, ibuffer-map-lines): * lisp/image.el (image--compute-map) (image--compute-original-map): * lisp/image/exif.el (exif-parse-buffer): * lisp/image/image-converter.el (image-convert-p, image-convert) (image-converter--find-converter): * lisp/image/image-dired-util.el (image-dired-file-name-at-point): * lisp/image/image-dired.el (image-dired-track-original-file) (image-dired--on-file-in-dired-buffer) (image-dired--with-thumbnail-buffer) (image-dired-jump-original-dired-buffer) (image-dired--slideshow-step, image-dired-display-image): * lisp/image/wallpaper.el (wallpaper--init-action-kill) (wallpaper--find-setter, wallpaper--find-command) (wallpaper--find-command-args, wallpaper--x-monitor-name): * lisp/info-look.el (info-lookup-interactive-arguments) (info-complete)::(:mode): * lisp/info.el (info-pop-to-buffer, Info-read-node-name-1): * lisp/international/emoji.el (emoji--adjust-displayable-1) (emoji--add-recent): * lisp/jsonrpc.el (jsonrpc--call-deferred) (jsonrpc--process-sentinel, jsonrpc--remove): * lisp/keymap.el (keymap-local-lookup): * lisp/mail/emacsbug.el (report-emacs-bug-hook) (submit-emacs-patch): * lisp/mail/ietf-drums.el (ietf-drums-parse-addresses): * lisp/mail/mailclient.el (mailclient-send-it): * lisp/mail/rfc6068.el (rfc6068-parse-mailto-url): * lisp/mail/undigest.el (rmail-digest-parse-mixed-mime): * lisp/minibuffer.el (completion-metadata-get) (completions--after-change) (minibuffer-visible-completions--filter): * lisp/net/browse-url.el (browse-url-url-at-point) (browse-url-file-url, browse-url-emacs): * lisp/net/dbus.el (dbus-byte-array-to-string) (dbus-monitor-goto-serial): * lisp/net/dictionary.el (dictionary-search): * lisp/net/eww.el (eww--download-directory) (eww-auto-rename-buffer, eww-open-in-new-buffer, eww-submit) (eww-follow-link, eww-read-alternate-url) (eww-copy-alternate-url): * lisp/net/goto-addr.el (goto-address-at-point): * lisp/net/mailcap.el (mailcap-mime-info): * lisp/net/rcirc.el (rcirc, rcirc-connect, rcirc-send-string) (rcirc-kill-buffer-hook, rcirc-print, rcirc-when) (rcirc-color-attributes, rcirc-handler-NICK) (rcirc-handler-TAGMSG, rcirc-handler-BATCH): * lisp/net/shr.el (shr-descend, shr-adaptive-fill-function) (shr-correct-dom-case, shr-tag-a): * lisp/net/sieve.el (sieve-manage-quit): * lisp/outline.el (outline-cycle-buffer): * lisp/pcmpl-git.el (pcmpl-git--tracked-file-predicate): * lisp/proced.el (proced-auto-update-timer): * lisp/progmodes/bug-reference.el (bug-reference-try-setup-from-vc): * lisp/progmodes/c-ts-common.el (c-ts-common--fill-paragraph): * lisp/progmodes/c-ts-mode.el (c-ts-mode--preproc-offset) (c-ts-mode--anchor-prev-sibling, c-ts-mode-indent-defun): * lisp/progmodes/compile.el (compilation-error-properties) (compilation-find-file-1): * lisp/progmodes/eglot.el (eglot--check-object) (eglot--read-server, eglot-upgrade-eglot) (eglot-handle-notification, eglot--CompletionParams) (eglot-completion-at-point, eglot--sig-info) (eglot-register-capability): * lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load) (elisp-eldoc-var-docstring-with-value): * lisp/progmodes/erts-mode.el (erts-mode--goto-start-of-test): * lisp/progmodes/flymake.el (flymake--update-eol-overlays) (flymake-eldoc-function): * lisp/progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom) (gdb-frame-handler): * lisp/progmodes/go-ts-mode.el (go-ts-mode-docstring) (go-ts-mode--comment-on-previous-line-p) (go-ts-mode--get-test-regexp-at-point) (go-ts-mode-test-this-file): * lisp/progmodes/grep.el (lgrep, rgrep-default-command) (grep-file-at-point): * lisp/progmodes/perl-mode.el (perl--end-of-format-p): * lisp/progmodes/php-ts-mode.el (php-ts-mode--anchor-prev-sibling, php-ts-mode--indent-defun): * lisp/progmodes/project.el (project--other-place-command) (project--find-default-from, project--transplant-file-name) (project-prefixed-buffer-name, project--remove-from-project-list) (project-prompt-project-name, project-remember-projects-under) (project--switch-project-command) (project-uniquify-dirname-transform, project-mode-line-format): * lisp/progmodes/python.el (python-font-lock-keywords-maximum-decoration) (python--treesit-fontify-union-types) (python-shell-get-process-name, python-shell-restart) (python-shell-completion-at-point, python-ffap-module-path) (python-util-comint-end-of-output-p, python--import-sources) (python-add-import, python-remove-import, python-fix-imports): * lisp/progmodes/xref.el (xref--add-log-current-defun): * lisp/repeat.el (repeat-echo-message-string): * lisp/saveplace.el (save-place-dired-hook): * lisp/server.el (server-save-buffers-kill-terminal): * lisp/shadowfile.el (shadow-make-fullname) (shadow-contract-file-name, shadow-define-literal-group): * lisp/shell.el (shell-highlight-undef-mode): * lisp/simple.el (command-completion-using-modes-p) (command-execute, file-user-uid, file-group-gid) (first-completion, last-completion, switch-to-completions): * lisp/startup.el (startup--load-user-init-file): * lisp/tab-line.el (tab-line-tabs-buffer-group-by-project): * lisp/tar-mode.el (tar-goto-file, tar-next-file-displayer): * lisp/term/android-win.el (android-encode-select-string) (gui-backend-set-selection): * lisp/term/haiku-win.el (haiku-dnd-convert-string) (haiku-select-encode-xstring, haiku-select-encode-utf-8-string): * lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize): * lisp/textmodes/ispell.el (ispell-completion-at-point): * lisp/textmodes/sgml-mode.el (sgml-validate) (html-mode--complete-at-point): * lisp/textmodes/tex-mode.el (tex-recenter-output-buffer) (xref-backend-references): * lisp/thingatpt.el (thing-at-point-file-at-point) (thing-at-point-face-at-point): * lisp/thread.el (thread-list--get-status): * lisp/time.el (world-clock-copy-time-as-kill, world-clock): * lisp/touch-screen.el (touch-screen-handle-touch): * lisp/treesit.el (treesit-language-at, treesit-node-at) (treesit-node-on, treesit-buffer-root-node) (treesit-node-field-name, treesit-local-parsers-at) (treesit-local-parsers-on, treesit--cleanup-local-range-overlays) (treesit-font-lock-recompute-features) (treesit-font-lock-fontify-region, treesit-transpose-sexps) (treesit-add-log-current-defun, treesit-major-mode-setup) (treesit--explorer-refresh, treesit-install-language-grammar): * lisp/url/url.el (url-retrieve-synchronously): * lisp/vc/smerge-mode.el (smerge-diff): * lisp/vc/vc-dir.el (vc-dir): * lisp/vc/vc-dispatcher.el (vc-do-async-command): * lisp/vc/vc-git.el (vc-git-dir--branch-headers) (vc-git-dir--stash-headers, vc-git--log-edit-summary-check) (vc-git-stash-list): * lisp/vc/vc.el (vc-responsible-backend, vc-buffer-sync-fileset) (vc-clone): * lisp/visual-wrap.el (visual-wrap--apply-to-line): * lisp/wid-edit.el (widget-text) (widget-editable-list-insert-before): * lisp/window-tool-bar.el (window-tool-bar--keymap-entry-to-string): * lisp/window.el (display-buffer, display-buffer-full-frame) (window-point-context-set, window-point-context-use) (window-point-context-use-default-function): * lisp/xdg.el (xdg-current-desktop): * lisp/xwidget.el (xwidget-webkit-callback): * lisp/yank-media.el (yank-media--get-selection) (yank-media-types): * test/lisp/comint-tests.el (comint-tests/test-password-function): * test/lisp/completion-preview-tests.el (completion-preview-tests--capf): * test/lisp/cus-edit-tests.el (with-cus-edit-test): * test/lisp/erc/erc-scenarios-base-local-modules.el (-phony-sblm-): * test/lisp/erc/erc-scenarios-stamp.el (erc-scenarios-stamp--on-post-modify): * test/lisp/erc/erc-services-tests.el (erc-services-tests--asp-parse-entry): * test/lisp/erc/erc-tests.el (erc-modules--internal-property) (erc--find-mode, erc-tests--update-modules): * test/lisp/erc/resources/erc-d/erc-d-i.el (erc-d-i--parse-message): * test/lisp/erc/resources/erc-d/erc-d-t.el (erc-d-t-kill-related-buffers, erc-d-t-with-cleanup): * test/lisp/erc/resources/erc-d/erc-d-tests.el (erc-d-i--parse-message--irc-parser-tests): * test/lisp/erc/resources/erc-d/erc-d-u.el (erc-d-u--read-exchange-slowly): * test/lisp/erc/resources/erc-d/erc-d.el (erc-d--expire) (erc-d--finalize-done, erc-d--command-handle-all): * test/lisp/erc/resources/erc-scenarios-common.el (erc-scenarios-common-with-cleanup): * test/lisp/erc/resources/erc-tests-common.el (erc-tests--common-display-message) (erc-tests-common-create-subprocess): * test/lisp/ibuffer-tests.el (ibuffer-test-Bug25058): * test/lisp/international/mule-tests.el (mule-cmds-tests--ucs-names-missing-names): * test/lisp/progmodes/python-tests.el (python-tests-get-shell-interpreter) (python-tests--get-interpreter-info): * test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-resource-file): * test/lisp/replace-tests.el (replace-tests-with-undo): * test/src/emacs-tests.el (emacs-tests--seccomp-debug): * test/src/process-tests.el (process-tests--emacs-command) (process-tests--emacs-binary, process-tests--dump-file): * test/src/treesit-tests.el (treesit--ert-test-defun-navigation): Replace use of the now-obsolete if-let and when-let.
* | (key-translate-select): Minor tweaksStefan Monnier2024-10-031-2/+3
| | | | | | | | | | | | * lisp/keymap.el (key-translate-select): Rename from `key-select-translation` so as to stick to the `key-translate-` prefix. Silence compilation warning.
* | Add commands to interactively set/unset keyboard translationsHugo Heagren2024-10-031-1/+57
|/ | | | | | | | | * lisp/keymap.el (key-translate): Add an interactive form, prompting for keys to translate, and update docstring to reflect this. (key-translate-selection-function): New custom option. (key-select-translation): New function, default value of above option. (key-translate-remove): New command, for removing entries from `keyboard-translate-table'.
* Improve key binding documentation.Robert Pluim2024-06-031-0/+8
| | | | | | | * doc/emacs/custom.texi (Init Rebinding): Explain how to bind a key to a string and how to use non-ASCII characters. * lisp/keymap.el (keymap-global-set, keymap-local-set): Mention 'key-description'.
* Improve 'key-translate' to support removing translationsCharalampos Mitrodimas2024-05-231-8/+23
| | | | | | | | | | | | | | | | This patch enhances the key-translate function to allow removing keyboard translations by passing nil as the second argument (TO). If TO is nil, any existing translation for the FROM key will be removed. The compiler macro is updated to only check TO when it is non-nil. This change makes key-translate more consistent with the behavior of 'keyboard-translate', providing a way to remove translations without having to specify the same key for both FROM and TO. The documentation string is updated to reflect the new behavior. * lisp/keymap.el (key-translate): Support removing translations by passing nil as the second argument (TO). Also signal an error if multiple items are passed. (Bug#70139)
* Support hints in the :repeat keyword of defvar-keymap for repeat-modeJuri Linkov2024-05-021-4/+11
| | | | | | | | * lisp/keymap.el (defvar-keymap): Add :hints to the :repeat keyword. Put the property 'repeat-hint' on the command symbol. * lisp/repeat.el (repeat-echo-message-string): Show hint strings defined with the property 'repeat-hint' on the command symbol (bug#70576).
* Merge from origin/emacs-29Eli Zaretskii2024-03-231-1/+1
|\ | | | | | | | | e95a8622263 ; * lisp/keymap.el (key-parse): Fix processing of "[TAB]"... afb7a23e7b9 ; Improve documentation of 'backup-by-copying'
| * ; * lisp/keymap.el (key-parse): Fix processing of "[TAB]". (Bug#69893)Eli Zaretskii2024-03-211-1/+1
| |
* | * lisp/keymap.el (define-keymap): Demote "duplicate def" to a warningStefan Monnier2024-01-201-3/+9
|/ | | | | * test/src/keymap-tests.el (keymap-test-duplicate-definitions): Adjust accordingly.
* ; Add 2024 to copyright yearsPo Lu2024-01-021-1/+1
|
* Make key-translate actually workShynur2023-09-181-3/+5
| | | | | * lisp/keymap.el (key-translate): Use the first element of the parsed keys rather than the whole vector. (Bug#65735)
* Add missing builtin package declarationsStefan Kangas2023-09-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | * lisp/finder.el (finder--builtins-alist): Add new package directories 'leim' and 'obsolete' as part of the 'emacs' package. Add new package directory 'use-package' as part of the 'use-package' package. * lisp/net/eudc-capf.el: * lisp/net/eudcb-ecomplete.el: * lisp/net/eudcb-macos-contacts.el: * lisp/net/eudcb-mailabbrev.el: Declare library as part of the 'eudc' package. * lisp/mail/ietf-drums-date.el: Declare library as part of the 'ietf-drums' package. * lisp/image/image-dired-dired.el: * lisp/image/image-dired-external.el: * lisp/image/image-dired-tags.el: * lisp/image/image-dired-util.el: Declare library as part of the 'image-dired' package. * lisp/emacs-lisp/oclosure.el: * lisp/keymap.el: * lisp/progmodes/c-ts-common.el: Declare library as part of the 'emacs' package. (Bug#62751) (cherry picked from commit 94b1de2774b5c1fa3c28285229900657638f5c3f)
* ; Fix typos in lisp/keymap.el doc strings (bug#65329).Thomas Voss2023-08-161-2/+2
| | | | Copyright-paper-exempt: yes
* ; Improve documentation of key-binding commandsEli Zaretskii2023-07-061-20/+38
| | | | | | | | | * 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.
* Improve defvar-keymap docstring.Robert Pluim2023-03-201-8/+11
| | | | | * lisp/keymap.el (defvar-keymap): Improve description of ':enter' and ':exit' usage for ':repeat' keyword.
* Improve keymap-global-set and keymap-local-set interactive use fixRobert Pluim2023-02-031-8/+10
| | | | | | | * lisp/keymap.el (keymap-global-set, keymap-local-set): Add optional `interactive' arg and use it to decide when to convert the key specification to a string. Add `advertised-calling-convention' declarations. (Bug#61149)
* ; Doc fixes in keymap.elEli Zaretskii2023-02-021-19/+19
| | | | | * lisp/keymap.el (key-valid-p, key-translate, keymap-lookup) (define-keymap): Doc fixes.
* * lisp/keymap.el (keymap-global-unset): Correct promptRobert Pluim2023-01-311-1/+1
|
* Fix interactive use of `keymap-local-set' and `keymap-global-set'Robert Pluim2023-01-301-7/+6
| | | | | | * lisp/keymap.el (keymap-global-set, keymap-local-set): Convert the read key sequence to a string when called interactively. Based on a patch from Stephen Berman <stephen.berman@gmx.net>. (Bug#61149)
* Make `keymap-set-after' work for menusRobert Pluim2023-01-201-3/+9
| | | | | | | | | | | | It still doesn't work for an AFTER that's a key, though, since `key-parse' produces vectors, and keymaps contain integers. * lisp/keymap.el (keymap-set-after): Only parse AFTER as a key if it's a string. For consistency, use `key-parse' on the definition if it's a string, just like `keymap-set'. * test/src/keymap-tests.el (keymap-tests--command-3): New dummy command. (keymap-set-after-menus): New test. Check that we can insert a menu item after a specific entry.
* Use `key-parse' in `keymap-lookup'Robert Pluim2023-01-201-1/+1
| | | | | | | | | It's stricter than `kbd', and doesn't try to do anything with key sequences that look like macros. * lisp/keymap.el (keymap-lookup): Use `key-parse' instead of `kbd'. * test/src/keymap-tests.el (keymap-set-after-menus): Test the `keymap-set-after' API.
* Handle after arg correctly in `keymap-set-after'Robert Pluim2023-01-201-0/+1
| | | | | * lisp/keymap.el (keymap-set-after): AFTER: t means the same as nil, so just change it to nil. (Bug#60867)
* ; Add 2023 to copyright years.Eli Zaretskii2023-01-011-1/+1
|
* Use the new keyword ':repeat' in repeatable keymaps.Juri Linkov2022-12-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | * lisp/bindings.el (undo-repeat-map) (buffer-navigation-repeat-map, next-error-repeat-map) (page-navigation-repeat-map): * lisp/comint.el (comint-repeat-map): * lisp/dired.el (dired-jump-map): * lisp/outline.el (outline-navigation-repeat-map) (outline-editing-repeat-map): * lisp/shell.el (shell-repeat-map): * lisp/tab-bar.el (tab-bar-switch-repeat-map) (tab-bar-move-repeat-map): * lisp/window.el (other-window-repeat-map) (resize-window-repeat-map): * lisp/winner.el (winner-repeat-map): * lisp/eshell/em-prompt.el (eshell-prompt-repeat-map): * lisp/eshell/esh-mode.el (eshell-command-repeat-map): Add the keyword ':repeat' to 'defvar-keymap' instead of setting the symbol property 'repeat-map' explicitly. * lisp/keymap.el (defvar-keymap): Check for 'props' that is used in 'defvar-form'.
* ; * lisp/keymap.el (keymap-substitute): Doc fix. (Bug#60059)Stefan Kangas2022-12-141-1/+1
| | | | (cherry picked from commit 1568123196cd8b57ed64e284b7deb058026be713)
* Improve 'defvar-keymap' docstringRobert Pluim2022-11-181-12/+20
| | | | | | * etc/NEWS: Improve ':repeat' entry for 'defvar-keymap'. * lisp/keymap.el (defvar-keymap): Improve description of ':repeat' keyword.
* * lisp/keymap.el (defvar-keymap): Don't use pcase.Juri Linkov2022-11-171-5/+5
|
* * lisp/keymap.el (defvar-keymap): Add support for repeat-mode.Juri Linkov2022-11-171-9/+43
| | | | | | | Put symbol properties 'repeat-map' on commands from the keymap when a ':repeat' keyword is non-nil. Also include/exclude commands according to ':repeat (:enter (commands ...) :exit (commands ...))'. https://lists.gnu.org/archive/html/emacs-devel/2022-11/msg00968.html
* Revert "keymap.el: Ease up support for non-`kbd` formats."Lars Ingebrigtsen2022-10-031-16/+3
| | | | | | | | | This reverts commit 570a11052be6178954956a1c59c8ebcbdb77d38e. We do not want to support several keymap formats in `keymap-set' and friends -- the point is to have an interface with easy-to-understand semantics that give good feedback on valid/invalid key sequences.
* keymap.el: Ease up support for non-`kbd` formats.Stefan Monnier2022-10-021-3/+16
| | | | | | | | | | | | | | While we want to standardize on the `kbd` syntax for user-facing code, the internal vector representation of key sequences is not going away, so let's not impose silly `key-description + key-parse` roundtrips. Also, provide some support for packages stuck with user configs defined to hold old-style key formats. * lisp/keymap.el (keymap-set): Allow vectors as `key`. (key-parse-old-format): New function, which stands out better than `key-description` when searching for uses of the old syntax. * list/outline.el (outline-minor-mode): Use it.
* Signal error on duplicate key definitionsRobert Pluim2022-08-021-1/+15
| | | | | | | | | | | * 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.
* Declare `key-valid-p` and `readablep` as error-freeMattias EngdegÄrd2022-07-311-1/+1
| | | | | | | * lisp/keymap.el (key-valid-p): * lisp/subr.el (readablep): These functions are effect-free; declare them correspondingly. Note that readablep is not pure since its return value depends on ambient state.