[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ergoemacs-mode 9acd205 34/87: Fix Issue #451 by coding
From: |
Stefan Monnier |
Subject: |
[elpa] externals/ergoemacs-mode 9acd205 34/87: Fix Issue #451 by coding a new old binding function |
Date: |
Wed, 14 Apr 2021 18:47:02 -0400 (EDT) |
branch: externals/ergoemacs-mode
commit 9acd2057fafe96ff7937e877f2d6edd04cc05dfe
Author: Fidler <matthew.fidler@gmail.com>
Commit: Fidler <matthew.fidler@gmail.com>
Fix Issue #451 by coding a new old binding function
---
ergoemacs-functions.el | 21 ++++++
ergoemacs-map.el | 173 +++++++++++++++++++++++++------------------------
2 files changed, 108 insertions(+), 86 deletions(-)
diff --git a/ergoemacs-functions.el b/ergoemacs-functions.el
index 4516828..9edc59b 100644
--- a/ergoemacs-functions.el
+++ b/ergoemacs-functions.el
@@ -2730,6 +2730,27 @@ With a prefix argument like \\[universial-argument] in an
(unless (fboundp 'ergoemacs-test)
(autoload 'ergoemacs-test (expand-file-name "ergoemacs-test.el"
ergoemacs-dir) nil t))
+(defun ergoemacs-where-is-old-binding ()
+ "Find where the old binding of a key is now located."
+ (interactive)
+ (let (ergoemacs-mode
+ key-seq
+ cmd
+ key-seq2)
+ (unwind-protect
+ (progn
+ (setq overriding-terminal-local-map (ergoemacs :original
global-map))
+ (setq key-seq (read-key-sequence "Old Emacs Command: ")
+ cmd (key-binding key-seq)
+ overriding-terminal-local-map nil
+ key-seq2 (where-is-internal cmd nil t)))
+ (setq overriding-terminal-local-map nil))
+ (message "%s; %s" key-seq key-seq2)
+ (if key-seq2
+ (message "Old Emacs Key: %s-> Ergoemacs Key: %s"
(ergoemacs-key-description key-seq)
+ (ergoemacs-key-description key-seq2))
+ (message "Could not find old emacs %s" (ergoemacs-key-description
key-seq)))))
+
(provide 'ergoemacs-functions)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ergoemacs-functions.el ends here
diff --git a/ergoemacs-map.el b/ergoemacs-map.el
index 4c8cc2a..c2a77a7 100644
--- a/ergoemacs-map.el
+++ b/ergoemacs-map.el
@@ -953,92 +953,93 @@ If it is a tranisent map, assign the :dont-modify-p
property to t."
"Modifies Active maps.
When INI is non-nil, add conditional maps to `minor-mode-map-alist'."
- (let ((char-map (get-char-property-and-overlay (point) 'keymap))
- (local-map (get-text-property (point) 'local-map))
- (current-local-map (current-local-map))
- tmp)
- (when (and overriding-terminal-local-map
- (not (eq overriding-terminal-local-map
ergoemacs-map--modify-active-last-overriding-terminal-local-map))
- (not (ergoemacs overriding-terminal-local-map :installed-p))
- (not (memq 'add-keymap-witness overriding-terminal-local-map)))
- ;; (ergoemacs-map--temporary-map-properties
overriding-terminal-local-map)
- (setq overriding-terminal-local-map (ergoemacs
overriding-terminal-local-map)))
-
- (when (and overriding-local-map
- (not (eq overriding-local-map
ergoemacs-map--modify-active-last-overriding-local-map))
- (not (ergoemacs overriding-local-map :installed-p)))
- ;; (ergoemacs-map--temporary-map-properties overriding-local-map)
- (setq overriding-local-map (ergoemacs overriding-local-map)))
-
- (ergoemacs-save-buffer-state
- (when (and char-map (symbolp char-map))
- (setq char-map (ergoemacs-sv char-map)))
- (when (and (listp char-map)
- (car char-map)
- (not (eq (car char-map)
ergoemacs-map--modify-active-last-char-map))
- (not (ergoemacs (car char-map) :installed-p)))
- (cond
- ((cdr char-map)
- ;; Overlay
- (overlay-put (cdr char-map) 'keymap (ergoemacs (car char-map))))
- (t ;; Text Property
- (put-text-property (previous-single-char-property-change (point)
'keymap)
- (next-single-char-property-change (point) 'keymap)
- 'keymap
- (ergoemacs (car char-map))))))
- (when (and local-map (symbolp local-map))
- (setq local-map (ergoemacs-sv local-map)))
- (when (and local-map
- (not (eq local-map
ergoemacs-map--modify-active-last-local-map))
- (not (ergoemacs local-map :installed-p)))
- (put-text-property (previous-single-char-property-change (point)
'local-map)
- (next-single-char-property-change (point) 'local-map)
- 'local-map (ergoemacs local-map)))
- ;; Save before any changes happen (ie in calc)
- (when (and (not ergoemacs-map--saved-global-map)
- (ergoemacs :ignore-global-changes-p))
- (setq ergoemacs-map--saved-global-map (copy-keymap global-map)))
- ;; Restore outside of modes that change the global map (calc)
- (when (and ergoemacs-map--saved-global-map
- (not (ergoemacs :ignore-global-changes-p)))
- (setq global-map (copy-keymap ergoemacs-map--saved-global-map)
- ergoemacs-map--saved-global-map nil)
- (use-global-map global-map))
- (when (and (setq tmp (current-global-map))
- (ergoemacs-keymapp tmp)
- (not (eq tmp global-map))
- (or (not ergoemacs-map--last-global-map)
- (not (eq ergoemacs-map--last-global-map tmp)))
- (not (ergoemacs tmp :installed-p)))
- (use-global-map (ergoemacs tmp))
- (setq ergoemacs-map--last-global-map (current-global-map)))
- (when (and current-local-map (not (ergoemacs current-local-map
:installed-p))
- (not (minibufferp)))
- (setq ergoemacs-map--breadcrumb (format "%s" major-mode))
- (when (eq major-mode 'ess-mode)
- (setq ergoemacs-map--breadcrumb (format "ess-mode-%s" ess-language)))
- (use-local-map (ergoemacs current-local-map))
- (setq ergoemacs-map--breadcrumb ""))
- (when (and (minibufferp) ergoemacs-read-from-minibuffer-map)
- (use-local-map (ergoemacs ergoemacs-read-from-minibuffer-map))
- (setq ergoemacs-read-from-minibuffer-map nil
- ergoemacs-map--breadcrumb ""))
- ;; Run deferred "hooks"
- (when (and (minibufferp)
ergoemacs-component-struct--composed-hook-minibuffer)
- (dolist (elt (reverse
ergoemacs-component-struct--composed-hook-minibuffer))
- (when (equal (ergoemacs (symbol-value elt) :map-key)
- (ergoemacs ergoemacs-read-from-minibuffer-map :map-key))
- (use-local-map (make-composed-keymap (cdr elt) (current-local-map))))
- (ergoemacs-save-buffer-state
- (set (make-local-variable (car elt)) (make-composed-keymap (cdr elt)
(symbol-value (car elt))))))
- (setq ergoemacs-component-struct--composed-hook-minibuffer nil)))
- (setq ergoemacs-map--modify-active-last-overriding-terminal-local-map
overriding-terminal-local-map
- ergoemacs-map--modify-active-last-overriding-local-map
overriding-local-map
- ergoemacs-map--modify-active-last-char-map char-map
- ergoemacs-map--modify-active-last-local-map local-map)
- (ergoemacs-map--emulation-mode-map-alists)
- (ergoemacs-map--minor-mode-map-alist ini)
- (ergoemacs-map--minor-mode-overriding-map-alist)))
+ (when ergoemacs-mode
+ (let ((char-map (get-char-property-and-overlay (point) 'keymap))
+ (local-map (get-text-property (point) 'local-map))
+ (current-local-map (current-local-map))
+ tmp)
+ (when (and overriding-terminal-local-map
+ (not (eq overriding-terminal-local-map
ergoemacs-map--modify-active-last-overriding-terminal-local-map))
+ (not (ergoemacs overriding-terminal-local-map :installed-p))
+ (not (memq 'add-keymap-witness overriding-terminal-local-map)))
+ ;; (ergoemacs-map--temporary-map-properties
overriding-terminal-local-map)
+ (setq overriding-terminal-local-map (ergoemacs
overriding-terminal-local-map)))
+
+ (when (and overriding-local-map
+ (not (eq overriding-local-map
ergoemacs-map--modify-active-last-overriding-local-map))
+ (not (ergoemacs overriding-local-map :installed-p)))
+ ;; (ergoemacs-map--temporary-map-properties overriding-local-map)
+ (setq overriding-local-map (ergoemacs overriding-local-map)))
+
+ (ergoemacs-save-buffer-state
+ (when (and char-map (symbolp char-map))
+ (setq char-map (ergoemacs-sv char-map)))
+ (when (and (listp char-map)
+ (car char-map)
+ (not (eq (car char-map)
ergoemacs-map--modify-active-last-char-map))
+ (not (ergoemacs (car char-map) :installed-p)))
+ (cond
+ ((cdr char-map)
+ ;; Overlay
+ (overlay-put (cdr char-map) 'keymap (ergoemacs (car char-map))))
+ (t ;; Text Property
+ (put-text-property (previous-single-char-property-change (point)
'keymap)
+ (next-single-char-property-change (point) 'keymap)
+ 'keymap
+ (ergoemacs (car char-map))))))
+ (when (and local-map (symbolp local-map))
+ (setq local-map (ergoemacs-sv local-map)))
+ (when (and local-map
+ (not (eq local-map
ergoemacs-map--modify-active-last-local-map))
+ (not (ergoemacs local-map :installed-p)))
+ (put-text-property (previous-single-char-property-change (point)
'local-map)
+ (next-single-char-property-change (point)
'local-map)
+ 'local-map (ergoemacs local-map)))
+ ;; Save before any changes happen (ie in calc)
+ (when (and (not ergoemacs-map--saved-global-map)
+ (ergoemacs :ignore-global-changes-p))
+ (setq ergoemacs-map--saved-global-map (copy-keymap global-map)))
+ ;; Restore outside of modes that change the global map (calc)
+ (when (and ergoemacs-map--saved-global-map
+ (not (ergoemacs :ignore-global-changes-p)))
+ (setq global-map (copy-keymap ergoemacs-map--saved-global-map)
+ ergoemacs-map--saved-global-map nil)
+ (use-global-map global-map))
+ (when (and (setq tmp (current-global-map))
+ (ergoemacs-keymapp tmp)
+ (not (eq tmp global-map))
+ (or (not ergoemacs-map--last-global-map)
+ (not (eq ergoemacs-map--last-global-map tmp)))
+ (not (ergoemacs tmp :installed-p)))
+ (use-global-map (ergoemacs tmp))
+ (setq ergoemacs-map--last-global-map (current-global-map)))
+ (when (and current-local-map (not (ergoemacs current-local-map
:installed-p))
+ (not (minibufferp)))
+ (setq ergoemacs-map--breadcrumb (format "%s" major-mode))
+ (when (eq major-mode 'ess-mode)
+ (setq ergoemacs-map--breadcrumb (format "ess-mode-%s" ess-language)))
+ (use-local-map (ergoemacs current-local-map))
+ (setq ergoemacs-map--breadcrumb ""))
+ (when (and (minibufferp) ergoemacs-read-from-minibuffer-map)
+ (use-local-map (ergoemacs ergoemacs-read-from-minibuffer-map))
+ (setq ergoemacs-read-from-minibuffer-map nil
+ ergoemacs-map--breadcrumb ""))
+ ;; Run deferred "hooks"
+ (when (and (minibufferp)
ergoemacs-component-struct--composed-hook-minibuffer)
+ (dolist (elt (reverse
ergoemacs-component-struct--composed-hook-minibuffer))
+ (when (equal (ergoemacs (symbol-value elt) :map-key)
+ (ergoemacs ergoemacs-read-from-minibuffer-map :map-key))
+ (use-local-map (make-composed-keymap (cdr elt)
(current-local-map))))
+ (ergoemacs-save-buffer-state
+ (set (make-local-variable (car elt)) (make-composed-keymap (cdr
elt) (symbol-value (car elt))))))
+ (setq ergoemacs-component-struct--composed-hook-minibuffer nil)))
+ (setq ergoemacs-map--modify-active-last-overriding-terminal-local-map
overriding-terminal-local-map
+ ergoemacs-map--modify-active-last-overriding-local-map
overriding-local-map
+ ergoemacs-map--modify-active-last-char-map char-map
+ ergoemacs-map--modify-active-last-local-map local-map)
+ (ergoemacs-map--emulation-mode-map-alists)
+ (ergoemacs-map--minor-mode-map-alist ini)
+ (ergoemacs-map--minor-mode-overriding-map-alist))))
(defvar ergoemacs-map--quit-map nil
- [elpa] externals/ergoemacs-mode f5aa0f7 63/87: Merge pull request #496 from wlandry/command_loop, (continued)
- [elpa] externals/ergoemacs-mode f5aa0f7 63/87: Merge pull request #496 from wlandry/command_loop, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 10007d2 64/87: Preserve the behavior of 'space' when rebinding inside a minibuffer, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode ad3ec45 73/87: Fix describe-ergoemacs-theme and consolidate menu items, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode eaf2812 79/87: Suppress more warnings, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 347070d 76/87: Some changes, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 19fea7e 77/87: Fix byte compile of ergoemacs-command-loop, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode fc097bd 82/87: Update copyright year, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode e79d33c 28/87: Rename ergoemacs-swiper to swiper. Issue #445, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode d36e6390 24/87: Defer ergoemacs override setup, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 7e31354 33/87: Merge pull request #450 from MicroAnibal/PotugueseLayout, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 9acd205 34/87: Fix Issue #451 by coding a new old binding function,
Stefan Monnier <=
- [elpa] externals/ergoemacs-mode 8ea44c2 18/87: Bug fix for modifiers, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 6a3214e 58/87: Merge pull request #490 from Valdaer/keep-region-selected-after-ctrl-c, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 0a9e83e 37/87: Fix eurgoemacs to be ergoemacs. See Issue #453, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 3ea0220 31/87: Add Qwidget for nomachine, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode a87fae7 45/87: Fix passing of multiple forms for evaluation on new emacs process, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 8a65bf2 59/87: Fix typos (dispaly -> display), Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 427d0e4 16/87: Only echo on prefix keys, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 5a7c4c6 20/87: Test for Issue #437, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode 3ce23bb 49/87: Merge branch 'master' of github.com:ergoemacs/ergoemacs-mode, Stefan Monnier, 2021/04/14
- [elpa] externals/ergoemacs-mode fad3ed1 56/87: Fixed not removing visible selection when ergoemacs-keep-region-after-copy is set to true., Stefan Monnier, 2021/04/14