Replace `org-speed-commands-user' by `org-speed-commands'

* etc/ORG-NEWS: Announce `org-speed-commands'.

* doc/org-manual.org (Speed Keys): Document `org-speed-commands'
instead of `org-speed-commands-user'.

* lisp/org-compat.el (org-speed-commands-user): Make an obsolete
variable.

* lisp/org-keys.el (org-speed-commands-user): Remove.
(org-speed-commands): Rename from `org-speed-commands-default' and
make a defcustom.  Add the docstring of `org-speed-commands-user'.
(org-speed-command-help): Throw a message about obsolete option
`org-speed-commands-user' when set in the user configuration.
(org-speed-command-activate): Update docstring.

Link: https://orgmode.org/list/87eeep3c1u.fsf@bzg.fr/
This commit is contained in:
Bastien 2021-05-03 16:30:04 +02:00
parent 5e534aecaa
commit d48276b894
4 changed files with 60 additions and 44 deletions

View File

@ -18656,14 +18656,14 @@ the variable ~org-use-speed-commands~ to a non-~nil~ value. To
trigger a Speed Key, point must be at the beginning of an Org trigger a Speed Key, point must be at the beginning of an Org
headline, before any of the stars. headline, before any of the stars.
#+vindex: org-speed-commands-user #+vindex: org-speed-commands
#+findex: org-speed-command-help #+findex: org-speed-command-help
Org comes with a pre-defined list of Speed Keys. To add or modify Org comes with a pre-defined list of Speed Keys. To add or modify
Speed Keys, customize the variable, ~org-speed-commands-user~. For Speed Keys, customize the option ~org-speed-commands~. For more
more details, see the variable's docstring. With Speed Keys details, see the variable's docstring. With Speed Keys activated,
activated, {{{kbd(M-x org-speed-command-help)}}}, or {{{kbd(?)}}} when {{{kbd(M-x org-speed-command-help)}}}, or {{{kbd(?)}}} when point is at the
point is at the beginning of an Org headline, shows currently active beginning of an Org headline, shows currently active Speed Keys,
Speed Keys, including the user-defined ones. including the user-defined ones.
** A Cleaner Outline View ** A Cleaner Outline View
:PROPERTIES: :PROPERTIES:

View File

@ -13,7 +13,7 @@ Please send Org bug reports to mailto:emacs-orgmode@gnu.org.
* Version 9.5 (not yet released) * Version 9.5 (not yet released)
** Important announcements ** Important announcements and breaking changes
*** The =contrib/= now lives in a separate repository *** The =contrib/= now lives in a separate repository
@ -41,6 +41,11 @@ latest unstable Org, please install from the Git repository.
See https://orgmode.org/org.html#Installation for the details. See https://orgmode.org/org.html#Installation for the details.
*** ~org-speed-commands-user~ is obsolete, use ~org-speed-commands~
Setting ~org-speed-commands-user~ in your configuration won't have any
effect. Please set ~org-speed-commands~ instead, which see.
** New options and settings ** New options and settings
*** Option ~org-hidden-keywords~ now also applies to #+SUBTITLE: *** Option ~org-hidden-keywords~ now also applies to #+SUBTITLE:

View File

@ -1202,6 +1202,11 @@ key."
(eval-after-load 'session (eval-after-load 'session
'(add-to-list 'session-globals-exclude 'org-mark-ring)) '(add-to-list 'session-globals-exclude 'org-mark-ring))
;;;; Speed commands
(make-obsolete-variable 'org-speed-commands-user
"configure `org-speed-commands' instead." "9.5")
(provide 'org-compat) (provide 'org-compat)
;; Local variables: ;; Local variables:

View File

@ -696,28 +696,6 @@ star at the beginning of the headline, you can do this:
(const :tag "At beginning of headline stars" t) (const :tag "At beginning of headline stars" t)
(function))) (function)))
(defcustom org-speed-commands-user nil
"Alist of additional speed commands.
This list will be checked before `org-speed-commands-default'
when the variable `org-use-speed-commands' is non-nil
and when the cursor is at the beginning of a headline.
The car of each entry is a string with a single letter, which must
be assigned to `self-insert-command' in the global map.
The cdr is either a command to be called interactively, a function
to be called, or a form to be evaluated.
An entry that is just a list with a single string will be interpreted
as a descriptive headline that will be added when listing the speed
commands in the Help buffer using the `?' speed command."
:group 'org-structure
:type '(repeat :value ("k" . ignore)
(choice :value ("k" . ignore)
(list :tag "Descriptive Headline" (string :tag "Headline"))
(cons :tag "Letter and Command"
(string :tag "Command letter")
(choice
(function)
(sexp))))))
(defcustom org-speed-command-hook (defcustom org-speed-command-hook
'(org-speed-command-activate org-babel-speed-command-activate) '(org-speed-command-activate org-babel-speed-command-activate)
"Hook for activating speed commands at strategic locations. "Hook for activating speed commands at strategic locations.
@ -737,7 +715,7 @@ hook. The default setting is `org-speed-command-activate'."
:version "24.1" :version "24.1"
:type 'hook) :type 'hook)
(defconst org-speed-commands-default (defcustom org-speed-commands
'(("Outline Navigation") '(("Outline Navigation")
("n" . (org-speed-move-safe 'org-next-visible-heading)) ("n" . (org-speed-move-safe 'org-next-visible-heading))
("p" . (org-speed-move-safe 'org-previous-visible-heading)) ("p" . (org-speed-move-safe 'org-previous-visible-heading))
@ -762,8 +740,7 @@ hook. The default setting is `org-speed-command-activate'."
("l" . org-metaleft) ("l" . org-metaleft)
("R" . org-shiftmetaright) ("R" . org-shiftmetaright)
("L" . org-shiftmetaleft) ("L" . org-shiftmetaleft)
("i" . (progn (forward-char 1) (call-interactively ("i" . (progn (forward-char 1) (call-interactively 'org-insert-heading-respect-content)))
'org-insert-heading-respect-content)))
("^" . org-sort) ("^" . org-sort)
("w" . org-refile) ("w" . org-refile)
("a" . org-archive-subtree-default-with-confirmation) ("a" . org-archive-subtree-default-with-confirmation)
@ -782,8 +759,7 @@ hook. The default setting is `org-speed-command-activate'."
(":" . org-set-tags-command) (":" . org-set-tags-command)
("e" . org-set-effort) ("e" . org-set-effort)
("E" . org-inc-effort) ("E" . org-inc-effort)
("W" . (lambda(m) (interactive "sMinutes before warning: ") ("W" . (lambda (m) (interactive "sMinutes before warning: ") (org-entry-put (point) "APPT_WARNTIME" m)))
(org-entry-put (point) "APPT_WARNTIME" m)))
("Agenda Views etc") ("Agenda Views etc")
("v" . org-agenda) ("v" . org-agenda)
("/" . org-sparse-tree) ("/" . org-sparse-tree)
@ -792,7 +768,28 @@ hook. The default setting is `org-speed-command-activate'."
("?" . org-speed-command-help) ("?" . org-speed-command-help)
("<" . (org-agenda-set-restriction-lock 'subtree)) ("<" . (org-agenda-set-restriction-lock 'subtree))
(">" . (org-agenda-remove-restriction-lock))) (">" . (org-agenda-remove-restriction-lock)))
"The default speed commands.") "Alist of speed commands.
The car of each entry is a string with a single letter, which
must be assigned to `self-insert-command' in the global map.
The cdr is either a command to be called interactively, a
function to be called, or a form to be evaluated.
An entry that is just a list with a single string will be
interpreted as a descriptive headline that will be added when
listing the speed commands in the Help buffer using the `?' speed
command."
:group 'org-structure
:package-version '(Org . "9.5")
:type '(repeat :value ("k" . ignore)
(choice :value ("k" . ignore)
(list :tag "Descriptive Headline" (string :tag "Headline"))
(cons :tag "Letter and Command"
(string :tag "Command letter")
(choice
(function)
(sexp))))))
(defun org-print-speed-command (e) (defun org-print-speed-command (e)
(if (> (length (car e)) 1) (if (> (length (car e)) 1)
@ -814,12 +811,18 @@ hook. The default setting is `org-speed-command-activate'."
(interactive) (interactive)
(unless org-use-speed-commands (unless org-use-speed-commands
(user-error "Speed commands are not activated, customize `org-use-speed-commands'")) (user-error "Speed commands are not activated, customize `org-use-speed-commands'"))
;; FIXME: remove this warning for 9.6
(when (boundp 'org-speed-commands-user)
(message "`org-speed-command-user' is obsolete, please use `org-speed-commands'")
(sit-for 3))
(with-output-to-temp-buffer "*Help*" (with-output-to-temp-buffer "*Help*"
(princ "User-defined Speed commands\n===========================\n") (princ "Speed commands\n==============\n")
(mapc #'org-print-speed-command org-speed-commands-user) (mapc #'org-print-speed-command
(princ "\n") ;; FIXME: don't check `org-speed-commands-user' past 9.6
(princ "Built-in Speed commands\n=======================\n") (if (boundp 'org-speed-commands-user)
(mapc #'org-print-speed-command org-speed-commands-default)) (append org-speed-commands
org-speed-commands-user)
org-speed-commands)))
(with-current-buffer "*Help*" (with-current-buffer "*Help*"
(setq truncate-lines t))) (setq truncate-lines t)))
@ -835,13 +838,16 @@ If not, return to the original position and throw an error."
(defun org-speed-command-activate (keys) (defun org-speed-command-activate (keys)
"Hook for activating single-letter speed commands. "Hook for activating single-letter speed commands.
`org-speed-commands-default' specifies a minimal command set. See `org-speed-commands' for configuring them."
Use `org-speed-commands-user' for further customization."
(when (or (and (bolp) (looking-at org-outline-regexp)) (when (or (and (bolp) (looking-at org-outline-regexp))
(and (functionp org-use-speed-commands) (and (functionp org-use-speed-commands)
(funcall org-use-speed-commands))) (funcall org-use-speed-commands)))
(cdr (assoc keys (append org-speed-commands-user (cdr (assoc keys
org-speed-commands-default))))) ;; FIXME: don't check `org-speed-commands-user' past 9.6
(if (boundp 'org-speed-commands-user)
(append org-speed-commands
org-speed-commands-user)
org-speed-commands)))))
;;; Babel speed keys ;;; Babel speed keys