mlf176f2 pushed a commit to branch externals/ergoemacs-mode in repository elpa.
commit 6ecaa9d9d5341fe3c2bce8e641cc3cb32391029f Author: Matthew L. Fidler <[email protected]> Date: Fri May 23 22:57:27 2014 +0800 ergoemacs--key-message --- ergoemacs-shortcuts.el | 174 +++++++++++++++--------------------------------- 1 files changed, 53 insertions(+), 121 deletions(-) diff --git a/ergoemacs-shortcuts.el b/ergoemacs-shortcuts.el index 96c4d5d..1e0215b 100644 --- a/ergoemacs-shortcuts.el +++ b/ergoemacs-shortcuts.el @@ -524,61 +524,46 @@ It will replace anything defined by `ergoemacs-translation'" (defun ergoemacs-read-key-next-key-is-alt (&optional type pretty-key) "The next key read is an Alt+ key. (or M- )" (interactive) - (let (next-key - key pretty kbd) - (setq next-key - (ergoemacs-translate - (vector - (ergoemacs-read-event nil pretty-key ergoemacs-alt-text)))) - (setq key (plist-get next-key ':alt-key)) - (setq pretty (plist-get next-key ':alt-pretty)) - (setq kbd (plist-get next-key ':alt)) - (setq next-key (ergoemacs-read-key-install-next-key next-key key pretty kbd)) - next-key)) + (let* ((next-key (ergoemacs-translate + (vector + (ergoemacs-read-event nil pretty-key ergoemacs-alt-text)))) + (key (plist-get next-key ':alt-key)) + (pretty (plist-get next-key ':alt-pretty)) + (kbd (plist-get next-key ':alt))) + (ergoemacs-read-key-install-next-key next-key key pretty kbd))) (defun ergoemacs-read-key-next-key-is-ctl (&optional type pretty-key) "The next key read is an Ctrl+ key. (or C- )" (interactive) - (let (next-key - key pretty kbd) - (setq next-key - (ergoemacs-translate - (vector - (ergoemacs-read-event nil pretty-key ergoemacs-ctl-text)))) - (setq key (plist-get next-key ':ctl-key)) - (setq pretty (plist-get next-key ':ctl-pretty)) - (setq kbd (plist-get next-key ':ctl)) - (setq next-key (ergoemacs-read-key-install-next-key next-key key pretty kbd)) - next-key)) + (let* ((next-key (ergoemacs-translate + (vector + (ergoemacs-read-event nil pretty-key ergoemacs-ctl-text)))) + (key (plist-get next-key ':ctl-key)) + (pretty (plist-get next-key ':ctl-pretty)) + (kbd (plist-get next-key ':ctl))) + (ergoemacs-read-key-install-next-key next-key key pretty kbd))) (defun ergoemacs-read-key-next-key-is-alt-ctl (&optional type pretty-key) "The next key read is an Alt+Ctrl+ key. (or C-M- )" (interactive) - (let (next-key - key pretty kbd) - (setq next-key - (ergoemacs-translate - (vector - (ergoemacs-read-event nil pretty-key ergoemacs-alt-ctl-text)))) - (setq key (plist-get next-key ':alt-ctl-key)) - (setq pretty (plist-get next-key ':alt-ctl-pretty)) - (setq kbd (plist-get next-key ':alt-ctl)) - (setq next-key (ergoemacs-read-key-install-next-key next-key key pretty kbd)) - (symbol-value'next-key))) + (let* ((next-key (ergoemacs-translate + (vector + (ergoemacs-read-event nil pretty-key ergoemacs-alt-ctl-text)))) + (key (plist-get next-key ':alt-ctl-key)) + (pretty (plist-get next-key ':alt-ctl-pretty)) + (kbd (plist-get next-key ':alt-ctl))) + (ergoemacs-read-key-install-next-key next-key key pretty kbd))) (defun ergoemacs-read-key-next-key-is-quoted (&optional type pretty-key) "The next key read is quoted." (interactive) (when (and type pretty-key) - (let (next-key - key pretty kbd) - (setq next-key (vector (ergoemacs-read-event nil pretty-key ""))) - (setq next-key (ergoemacs-translate next-key)) - (setq key (plist-get next-key ':normal-key)) - (setq pretty (plist-get next-key ':normal-pretty)) - (setq kbd (plist-get next-key ':normal)) - (setq next-key (ergoemacs-read-key-install-next-key next-key key pretty kbd)) - next-key))) + (let* ((next-key (ergoemacs-translate + (vector (ergoemacs-read-event nil pretty-key "")))) + (key (plist-get next-key ':normal-key)) + (pretty (plist-get next-key ':normal-pretty)) + (kbd (plist-get next-key ':normal))) + (ergoemacs-read-key-install-next-key next-key key pretty kbd)))) (defun ergoemacs-read-key-help () "Show help for the current sequence KEY." @@ -634,6 +619,7 @@ It will replace anything defined by `ergoemacs-translation'" (set-default 'post-command-hook nil)) (defun ergoemacs-restore-post-command-hook () + "Restores `post-command-hook'." (when (or (default-value 'ergoemacs-defer-post-command-hook) ergoemacs-defer-post-command-hook) (set-default 'post-command-hook (default-value 'ergoemacs-defer-post-command-hook)) @@ -753,6 +739,26 @@ to the appropriate values for `ergoemacs-read-key'. (setq ret (ergoemacs-read-key-lookup-get-ret---universal fn))) ret)) +(defun ergoemacs--key-message (pretty-key dest) + "Prints the key command that was called. +PRETTY-KEY is the key displayed +DEST is the function being called." + (when (and ergoemacs-echo-function + (boundp 'pretty-key-undefined) + (not (or this-command-keys-shift-translated + ergoemacs-shift-translated))) + (let (message-log-max) + (if (string= pretty-key-undefined pretty-key) + (when (eq ergoemacs-echo-function t) + (message "%s%s%s" pretty-key + (ergoemacs-unicode-char "→" "->") + dest)) + (message "%s%s%s (from %s)" + pretty-key + (ergoemacs-unicode-char "→" "->") + dest + pretty-key-undefined))))) + (defun ergoemacs-read-key-lookup (prior-key prior-pretty-key key pretty-key force-key) "Lookup KEY and run if necessary. @@ -856,21 +862,7 @@ FORCE-KEY forces keys like <escape> to work properly. (error nil)))) (setq fn (or (command-remapping fn (point)) fn)) (setq ergoemacs-single-command-keys key) - (when (and ergoemacs-echo-function - (boundp 'pretty-key-undefined) - (not (or this-command-keys-shift-translated - ergoemacs-shift-translated))) - (let (message-log-max) - (if (string= pretty-key-undefined pretty-key) - (when (eq ergoemacs-echo-function t) - (message "%s%s%s" pretty-key - (ergoemacs-unicode-char "→" "->") - (symbol-name fn))) - (message "%s%s%s (from %s)" - pretty-key - (ergoemacs-unicode-char "→" "->") - (symbol-name fn) - pretty-key-undefined)))) + (ergoemacs--key-message pretty-key fn) (ergoemacs-read-key-call fn nil key) (setq ergoemacs-single-command-keys nil) (setq ret 'translate-fn)) @@ -883,21 +875,7 @@ FORCE-KEY forces keys like <escape> to work properly. (setq unread-command-events (append (listify-key-sequence tmp) unread-command-events)) (ergoemacs-defer-post-command-hook) (reset-this-command-lengths) - (when (and ergoemacs-echo-function - (boundp 'pretty-key-undefined) - (not (or this-command-keys-shift-translated - ergoemacs-shift-translated))) - (let (message-log-max) - (if (string= pretty-key-undefined pretty-key) - (when (eq ergoemacs-echo-function t) - (message "%s%s%s" pretty-key - (ergoemacs-unicode-char "→" "->") - (ergoemacs-pretty-key (key-description tmp)))) - (message "%s%s%s (from %s)" - pretty-key - (ergoemacs-unicode-char "→" "->") - (ergoemacs-pretty-key (key-description tmp)) - pretty-key-undefined)))) + (ergoemacs--key-message pretty-key (ergoemacs-pretty-key (key-description tmp))) (when lookup (define-key lookup [ergoemacs-single-command-keys] 'ignore) (setq ergoemacs-read-key-overriding-terminal-local-save overriding-terminal-local-map) @@ -951,45 +929,13 @@ FORCE-KEY forces keys like <escape> to work properly. (condition-case err (interactive-form (nth 0 hash)) (error nil))) - (when (and ergoemacs-echo-function - (boundp 'pretty-key-undefined) - (not (or this-command-keys-shift-translated - ergoemacs-shift-translated))) - (let (message-log-max) - (if (string= pretty-key-undefined pretty-key) - (when (eq ergoemacs-echo-function t) - (message "%s%s%s" pretty-key - (ergoemacs-unicode-char "→" "->") - (symbol-name (nth 0 hash)))) - (message "%s%s%s (from %s)" - pretty-key - (ergoemacs-unicode-char "→" "->") - (symbol-name (nth 0 hash)) - pretty-key-undefined)))) + (ergoemacs--key-message pretty-key (symbol-name (nth 0 hash))) (ergoemacs-shortcut-remap (nth 0 hash)) (setq ergoemacs-single-command-keys nil) (setq ret 'function-remap)) ((and ergoemacs-shortcut-keys (not ergoemacs-describe-key) (not ergoemacs-single-command-keys)) - (when (and ergoemacs-echo-function - (boundp 'pretty-key-undefined) - (not (or this-command-keys-shift-translated - ergoemacs-shift-translated))) - (let (message-log-max) - (if (nth 0 hash) - (setq fn (nth 0 hash)) - (setq fn (key-binding key)) - (setq fn (or (command-remapping fn (point)) fn))) - (if (string= pretty-key-undefined pretty-key) - (when (eq ergoemacs-echo-function t) - (message "%s%s%s;" pretty-key - (ergoemacs-unicode-char "→" "->") - fn)) - (message "%s%s%s (from %s);" - pretty-key - (ergoemacs-unicode-char "→" "->") - fn - pretty-key-undefined)))) + (ergoemacs--key-message pretty-key fn) ;; There is some issue with these keys. Read-key ;; thinks it is in a minibuffer, so the recursive ;; minibuffer error is raised unless these are put @@ -1015,21 +961,7 @@ FORCE-KEY forces keys like <escape> to work properly. (setq ret (ergoemacs-read-key-lookup-get-ret---universal fn))) (unless ret (setq ergoemacs-single-command-keys key) - (when (and ergoemacs-echo-function - (boundp 'pretty-key-undefined) - (not (or this-command-keys-shift-translated - ergoemacs-shift-translated))) - (let (message-log-max) - (if (string= pretty-key-undefined pretty-key) - (when (eq ergoemacs-echo-function t) - (message "%s%s%s" pretty-key - (ergoemacs-unicode-char "→" "->") - (symbol-name fn))) - (message "%s%s%s (from %s)" - pretty-key - (ergoemacs-unicode-char "→" "->") - (symbol-name fn) - pretty-key-undefined)))) + (ergoemacs--key-message pretty-key (symbol-name fn)) (ergoemacs-read-key-call fn nil key) (setq ergoemacs-single-command-keys nil) (setq ret 'function))))))
