emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/ergoemacs-mode 21624e9 269/325: Bug fix for calculate b


From: Stefan Monnier
Subject: [elpa] externals/ergoemacs-mode 21624e9 269/325: Bug fix for calculate bindings and update for the modes modified
Date: Sat, 23 Oct 2021 18:49:08 -0400 (EDT)

branch: externals/ergoemacs-mode
commit 21624e9eb242c912f4ead2a430c7060082c17d01
Author: Matthew Fidler <514778+mattfidler@users.noreply.github.com>
Commit: Matthew Fidler <514778+mattfidler@users.noreply.github.com>

    Bug fix for calculate bindings and update for the modes modified
---
 ergoemacs-calculate-bindings.el |  90 ++++++++++++++++---------------
 ergoemacs-key-description.el    |   8 ---
 ergoemacs-themes.el             | 115 +++++++++++++++++++++++++++++++++++++---
 3 files changed, 156 insertions(+), 57 deletions(-)

diff --git a/ergoemacs-calculate-bindings.el b/ergoemacs-calculate-bindings.el
index 2612d2e..f09b8e7 100644
--- a/ergoemacs-calculate-bindings.el
+++ b/ergoemacs-calculate-bindings.el
@@ -110,17 +110,19 @@
 (declare-function ergoemacs-translate--event-layout "ergoemacs-translate")
 (declare-function help--symbol-completion-table "help-fns")
 
-(defun ergoemacs-calculate-bindings-for-current-binding (keymap space)
+(defun ergoemacs-calculate-bindings-for-current-binding (keymap space cb)
   "Calculate ergoemcs keybindings for a KEYMAP and dislay in another buffer.
-SPACE represents the amount of sacing to add"
+SPACE represents the amount of sacing to add
+CB is the buffer to use  for keymap"
   (dolist (elt ergoemacs-lookup-bindings-list)
     (let* ((command (nth 1 elt))
            (key (nth 0 elt))
            (key-code (read-kbd-macro key))
-           (bind (lookup-key (symbol-value keymap) key-code)))
-      (when bind
+           (bind (with-current-buffer cb
+                   (lookup-key (symbol-value keymap) key-code))))
+      (when (commandp bind)
         (dolist (ergoemacs-command (where-is-internal command 
ergoemacs-override-keymap nil t t))
-          (insert (format "%s(ergoemacs-define-key %s (kbd \"%s\") '%s)" space 
(symbol-name keymap)
+          (insert (format "%s(ergoemacs-define-key %s (kbd \"%s\") '%s)" space 
(symbol-name keymap) 
                    (key-description (ergoemacs-translate--event-layout 
ergoemacs-command "us" ergoemacs-keyboard-layout))
                    (symbol-name bind))))))))
 
@@ -129,43 +131,47 @@ SPACE represents the amount of sacing to add"
 (defun ergoemacs-calculate-bindings-for-both-themes (keymap)
   "Calculates ergoemacs-style bindings for KEYMAP."
   (interactive
-   (let ((v (variable-at-point))
-            (enable-recursive-minibuffers t)
-         (orig-buffer (current-buffer))
-            val)
-     (setq val (completing-read
-                (if (and (symbolp v) (keymapp (symbol-value v)))
-                    (format
-                     "Calculate egoemacs-mode keybindings for keymap (default 
%s): " v)
-                  "Calculate ergoemacs-mode keybindings: ")
-                #'help--symbol-completion-table
-                (lambda (vv)
-                  ;; In case the variable only exists in the buffer
-                  ;; the command we switch back to that buffer before
-                  ;; we examine the variable.
-                  (with-current-buffer orig-buffer
-                    (and (boundp vv) (keymapp (symbol-value vv)))))
-                t nil nil
-                (if (and (symbolp v) (keymapp (symbol-value v)))
-                    (symbol-name v))))
-     (list (if (equal val "")
-                  v (intern val)))))
-  (when (stringp v)
-    (error "This funcion requires a keymap"))
-  (setq ergoemacs-calculate-bindings-for-both-theme--tmp
-        (copy-keymap ergoemacs-override-keymap)
-        ergoemacs-override-keymap (make-sparse-keymap))
-  (let ((buf (get-buffer-create (format "*ergoemacs keybindings for keymap 
%s*" keymap))))
-    (with-output-to-temp-buffer buf
-      (with-current-buffer buf
-        (insert "(if (string-equal ergoemacs-theme \"reduction\")\n  (progn")
-        (ergoemacs-install-reduction-theme)
-        (ergoemacs-calculate-bindings-for-current-binding keymap "\n    ")
-        (insert ")")
-        (setq ergoemacs-override-keymap (make-sparse-keymap))
-        (ergoemacs-install-standard-theme)
-        (ergoemacs-calculate-bindings-for-current-binding keymap "\n  ")
-        (insert ")"))))
+   (save-excursion
+     (let* ((v (variable-at-point))
+               (enable-recursive-minibuffers t)
+            (orig-buffer (current-buffer))
+               val)
+       (setq val (completing-read
+                  (if (and (symbolp v) (keymapp (symbol-value v)))
+                      (format
+                       "Calculate egoemacs-mode keybindings for keymap 
(default %s): " v)
+                    "Calculate ergoemacs-mode keybindings: ")
+                  #'help--symbol-completion-table
+                  (lambda (vv)
+                    ;; In case the variable only exists in the buffer
+                    ;; the command we switch back to that buffer before
+                    ;; we examine the variable.
+                    (with-current-buffer orig-buffer
+                      (and (boundp vv) (keymapp (symbol-value vv)))))
+                  t nil nil
+                  (if (and (symbolp v) (keymapp (symbol-value v)))
+                      (symbol-name v))))
+       (list (if (equal val "") v (intern val))))))
+  (let ((cb (current-buffer)))
+    (unless cb
+      (error "Cannot determine the buffer"))
+    (prin1 (type-of keymap))
+    (setq ergoemacs-calculate-bindings-for-both-theme--tmp
+          (copy-keymap ergoemacs-override-keymap)
+          ergoemacs-override-keymap (make-sparse-keymap))
+    (let ((buf (get-buffer-create (format "*ergoemacs keybindings for keymap 
%s*" (symbol-name keymap)))))
+      (with-output-to-temp-buffer buf
+        (with-current-buffer buf
+          (insert "(ergoemacs-save-key-state '")
+          (insert (symbol-name keymap))
+          (insert " (if (string-equal ergoemacs-theme \"reduction\")\n  
(progn")
+          (ergoemacs-install-reduction-theme)
+          (ergoemacs-calculate-bindings-for-current-binding keymap "\n    " cb)
+          (insert ")")
+          (setq ergoemacs-override-keymap (make-sparse-keymap))
+          (ergoemacs-install-standard-theme)
+          (ergoemacs-calculate-bindings-for-current-binding keymap "\n  " cb)
+          (insert "))")))))
  (setq ergoemacs-override-keymap 
ergoemacs-calculate-bindings-for-both-theme--tmp
        ergoemacs-calculate-bindings-for-both-theme--tmp nil))
 
diff --git a/ergoemacs-key-description.el b/ergoemacs-key-description.el
index 0bd9acd..1ba401c 100644
--- a/ergoemacs-key-description.el
+++ b/ergoemacs-key-description.el
@@ -70,8 +70,6 @@
 
 (declare-function ergoemacs-map--cache-- "ergoemacs-map")
 
-(declare-function ergoemacs-component--help-link "ergoemacs-component")
-
 (declare-function ergoemacs-map-keymap "ergoemacs-mapkeymap")
 (declare-function ergoemacs-advice--real-substitute-command-keys "C")
 
@@ -448,12 +446,6 @@ KBD is the keyboard code.  LAYOUT is the layout that is 
used."
       (setq ret (cons 'ergoemacs-component-help (nth 1 ret)))))
     ret))
 
-(defun ergoemacs-key-description--setup-xrefs ()
-  "Setup cross refecnes in help buffer."
-  (ergoemacs-component--help-link))
-
-(add-hook 'temp-buffer-show-hook 'ergoemacs-key-description--setup-xrefs)
-
 (defun ergoemacs-key-description--keymap-item (&optional elt keymap help)
   "Get keymap description for ELT based on KEYMAP.
 
diff --git a/ergoemacs-themes.el b/ergoemacs-themes.el
index af6b3ce..fa9567a 100644
--- a/ergoemacs-themes.el
+++ b/ergoemacs-themes.el
@@ -1369,7 +1369,19 @@ In a terminal, this can be either arrow keys (e.g. 
meta+O A == <up>) or regular
    (define-key org-mode-map [remap end-of-line] 'org-end-of-line)
    (define-key org-mode-map [remap forward-paragraph] 'org-forward-paragraph)
    (define-key org-mode-map [remap backward-paragraph] 'org-backward-paragraph)
-   (define-key org-mode-map [remap ergoemacs-paste] 'ergoemacs-org-yank)))
+   (define-key org-mode-map [remap ergoemacs-paste] 'ergoemacs-org-yank)
+   (if (string-equal ergoemacs-theme "reduction")
+       (progn
+         (ergoemacs-define-key org-mode-map (kbd "<C-up>") 
'org-backward-element)
+         (ergoemacs-define-key org-mode-map (kbd "<C-down>") 
'org-forward-element)
+         (ergoemacs-define-key org-mode-map (kbd "<M-up>") 
'org-backward-element)
+         (ergoemacs-define-key org-mode-map (kbd "<M-down>") 
'org-forward-element))
+     (ergoemacs-define-key org-mode-map (kbd "M-U") 'org-backward-element)
+     (ergoemacs-define-key org-mode-map (kbd "<C-up>") 'org-backward-element)
+     (ergoemacs-define-key org-mode-map (kbd "M-O") 'org-forward-element)
+     (ergoemacs-define-key org-mode-map (kbd "<C-down>") 'org-forward-element)
+     (ergoemacs-define-key org-mode-map (kbd "<M-up>") 'org-backward-element)
+     (ergoemacs-define-key org-mode-map (kbd "<M-down>") 
'org-forward-element))))
 
 (add-hook 'org-load-hook #'ergoemacs-install-org-bindings)
 
@@ -1378,7 +1390,13 @@ In a terminal, this can be either arrow keys (e.g. 
meta+O A == <up>) or regular
   "Install `log-edit' key bindings."
   (ergoemacs-save-key-state
    'log-edit-mode-map
-   (define-key log-edit-mode-map [remap save-buffer] 'log-edit-done)))
+   (define-key log-edit-mode-map [remap save-buffer] 'log-edit-done)
+   (if (string-equal ergoemacs-theme "reduction")
+       (progn
+         (ergoemacs-define-key log-edit-mode-map (kbd "M-m") 
'log-edit-beginning-of-line)
+         (ergoemacs-define-key log-edit-mode-map (kbd "<home>") 
'log-edit-beginning-of-line))
+     (ergoemacs-define-key log-edit-mode-map (kbd "<home>") 
'log-edit-beginning-of-line)
+     (ergoemacs-define-key log-edit-mode-map (kbd "M-h") 
'log-edit-beginning-of-line))))
 
 (with-eval-after-load 'log-edit (ergoemacs-install-log-edit-bindings))
 
@@ -1387,21 +1405,62 @@ In a terminal, this can be either arrow keys (e.g. 
meta+O A == <up>) or regular
   "Install `eshell' bindings."
   (ergoemacs-save-key-state
    'eshell-mode-map
-  (define-key eshell-mode-map [remap move-beginning-of-line] 'eshell-bol)))
+   (define-key eshell-mode-map [remap move-beginning-of-line] 'eshell-bol)
+   (if (string-equal ergoemacs-theme "reduction")
+       (progn
+         (ergoemacs-define-key eshell-mode-map (kbd "M-m") 'eshell-bol)
+         (ergoemacs-define-key eshell-mode-map (kbd "<home>") 'eshell-bol)
+         (ergoemacs-define-key eshell-mode-map (kbd "M-t") 
'eshell-complete-lisp-symbol))
+     (ergoemacs-define-key eshell-mode-map (kbd "<home>") 'eshell-bol)
+     (ergoemacs-define-key eshell-mode-map (kbd "M-h") 'eshell-bol)
+     (ergoemacs-define-key eshell-mode-map (kbd "M-t") 
'eshell-complete-lisp-symbol))))
+
 (add-hook 'eshell-post-command-hook #'ergoemacs-install-eshell-bindings)
 
 (defun ergoemacs-install-comint-bindings ()
   "Install comint key bindings."
   (ergoemacs-save-key-state
    'comint-mode-map
-  (define-key comint-mode-map [remap move-beginning-of-line] 'comint-bol)))
+   (define-key comint-mode-map [remap move-beginning-of-line] 'comint-bol)
+   (if (string-equal ergoemacs-theme "reduction")
+       (progn
+         (ergoemacs-define-key comint-mode-map (kbd "<delete>") 
'comint-delchar-or-maybe-eof)
+         (ergoemacs-define-key comint-mode-map (kbd "M-f") 
'comint-delchar-or-maybe-eof)
+         (ergoemacs-define-key comint-mode-map (kbd "C-g") 
'comint-delchar-or-maybe-eof))
+     (ergoemacs-define-key comint-mode-map (kbd "<delete>") 
'comint-delchar-or-maybe-eof)
+     (ergoemacs-define-key comint-mode-map (kbd "M-f") 
'comint-delchar-or-maybe-eof)
+     (ergoemacs-define-key comint-mode-map (kbd "C-g") 
'comint-delchar-or-maybe-eof))))
 
 (with-eval-after-load 'comint (ergoemacs-install-comint-bindings))
 
 (defun ergoemacs-install-dired-bindings ()
   "Install `dired-mode-map' bindings."
-  (define-key dired-mode-map [remap query-replace] 
'dired-do-query-replace-regexp)
-  (define-key dired-mode-map [remap query-replace-regexp] 
'dired-do-query-replace-regexp))
+  (ergoemacs-save-key-state
+   'dired-mode-map
+   (define-key dired-mode-map [remap query-replace] 
'dired-do-query-replace-regexp)
+   (define-key dired-mode-map [remap query-replace-regexp] 
'dired-do-query-replace-regexp)
+   (if (string-equal ergoemacs-theme "reduction")
+       (progn
+         (ergoemacs-define-key dired-mode-map (kbd "M-d") 
'dired-unmark-backward)
+         (ergoemacs-define-key dired-mode-map (kbd "DEL") 
'dired-unmark-backward)
+         (ergoemacs-define-key dired-mode-map (kbd "M-e") 
'dired-unmark-all-files)
+         (ergoemacs-define-key dired-mode-map (kbd "<C-backspace>") 
'dired-unmark-all-files)
+         (ergoemacs-define-key dired-mode-map (kbd "M-DEL") 
'dired-unmark-all-files)
+         (ergoemacs-define-key dired-mode-map (kbd "<C-up>") 
'dired-prev-marked-file)
+         (ergoemacs-define-key dired-mode-map (kbd "<C-down>") 
'dired-next-marked-file)
+         (ergoemacs-define-key dired-mode-map (kbd "<M-up>") 
'dired-prev-marked-file)
+         (ergoemacs-define-key dired-mode-map (kbd "<M-down>") 
'dired-next-marked-file))
+     (ergoemacs-define-key dired-mode-map (kbd "M-d") 'dired-unmark-backward)
+     (ergoemacs-define-key dired-mode-map (kbd "DEL") 'dired-unmark-backward)
+     (ergoemacs-define-key dired-mode-map (kbd "M-e") 'dired-unmark-all-files)
+     (ergoemacs-define-key dired-mode-map (kbd "<C-backspace>") 
'dired-unmark-all-files)
+     (ergoemacs-define-key dired-mode-map (kbd "M-DEL") 
'dired-unmark-all-files)
+     (ergoemacs-define-key dired-mode-map (kbd "M-U") 'dired-prev-marked-file)
+     (ergoemacs-define-key dired-mode-map (kbd "<C-up>") 
'dired-prev-marked-file)
+     (ergoemacs-define-key dired-mode-map (kbd "M-O") 'dired-next-marked-file)
+     (ergoemacs-define-key dired-mode-map (kbd "<C-down>") 
'dired-next-marked-file)
+     (ergoemacs-define-key dired-mode-map (kbd "<M-up>") 
'dired-prev-marked-file)
+     (ergoemacs-define-key dired-mode-map (kbd "<M-down>") 
'dired-next-marked-file))))
 (add-hook 'dired-load-hook #'ergoemacs-install-dired-bindings)
 
 (defvar calc-mode-map)
@@ -1409,7 +1468,49 @@ In a terminal, this can be either arrow keys (e.g. 
meta+O A == <up>) or regular
   "Install `calc-mode' bindings."
   (ergoemacs-save-key-state
    'comint-mode-map
-   (define-key calc-mode-map [remap ergoemacs-undo] 'calc-undo)))
+   (define-key calc-mode-map [remap ergoemacs-undo] 'calc-undo)
+   (if (string-equal ergoemacs-theme "reduction")
+       (progn
+         (ergoemacs-define-key calc-mode-map (kbd "M-d") 'calc-pop)
+         (ergoemacs-define-key calc-mode-map (kbd "DEL") 'calc-pop)
+         (ergoemacs-define-key calc-mode-map (kbd "<delete>") 'calc-pop)
+         (ergoemacs-define-key calc-mode-map (kbd "M-f") 'calc-pop)
+         (ergoemacs-define-key calc-mode-map (kbd "C-g") 'calc-pop)
+         (ergoemacs-define-key calc-mode-map (kbd "M-e") 'calc-pop-above)
+         (ergoemacs-define-key calc-mode-map (kbd "<C-backspace>") 
'calc-pop-above)
+         (ergoemacs-define-key calc-mode-map (kbd "M-DEL") 'calc-pop-above)
+         (ergoemacs-define-key calc-mode-map (kbd "<C-insert>") 
'calc-copy-region-as-kill)
+         (ergoemacs-define-key calc-mode-map (kbd "<menu> c") 
'calc-copy-region-as-kill)
+         (ergoemacs-define-key calc-mode-map (kbd "M-c") 
'calc-copy-region-as-kill)
+         (ergoemacs-define-key calc-mode-map (kbd "<S-insert>") 'calc-yank)
+         (ergoemacs-define-key calc-mode-map (kbd "C-v") 'calc-yank)
+         (ergoemacs-define-key calc-mode-map (kbd "<remap> <cua-paste>") 
'calc-yank)
+         (ergoemacs-define-key calc-mode-map (kbd "<menu> v") 'calc-yank)
+         (ergoemacs-define-key calc-mode-map (kbd "M-v") 'calc-yank)
+         (ergoemacs-define-key calc-mode-map (kbd "<menu> 5") 'calc-percent)
+         (ergoemacs-define-key calc-mode-map (kbd "M-5") 'calc-percent)
+         (ergoemacs-define-key calc-mode-map (kbd "M-g") 'calc-kill)
+         (ergoemacs-define-key calc-mode-map (kbd "<deleteline>") 'calc-kill)
+         (ergoemacs-define-key calc-mode-map (kbd "M-t") 'calc-roll-up))
+     (ergoemacs-define-key calc-mode-map (kbd "M-d") 'calc-pop)
+     (ergoemacs-define-key calc-mode-map (kbd "DEL") 'calc-pop)
+     (ergoemacs-define-key calc-mode-map (kbd "<delete>") 'calc-pop)
+     (ergoemacs-define-key calc-mode-map (kbd "M-f") 'calc-pop)
+     (ergoemacs-define-key calc-mode-map (kbd "C-g") 'calc-pop)
+     (ergoemacs-define-key calc-mode-map (kbd "M-e") 'calc-pop-above)
+     (ergoemacs-define-key calc-mode-map (kbd "<C-backspace>") 'calc-pop-above)
+     (ergoemacs-define-key calc-mode-map (kbd "M-DEL") 'calc-pop-above)
+     (ergoemacs-define-key calc-mode-map (kbd "<C-insert>") 
'calc-copy-region-as-kill)
+     (ergoemacs-define-key calc-mode-map (kbd "M-c") 'calc-copy-region-as-kill)
+     (ergoemacs-define-key calc-mode-map (kbd "<S-insert>") 'calc-yank)
+     (ergoemacs-define-key calc-mode-map (kbd "C-v") 'calc-yank)
+     (ergoemacs-define-key calc-mode-map (kbd "<remap> <cua-paste>") 
'calc-yank)
+     (ergoemacs-define-key calc-mode-map (kbd "M-v") 'calc-yank)
+     (ergoemacs-define-key calc-mode-map (kbd "M-5") 'calc-percent)
+     (ergoemacs-define-key calc-mode-map (kbd "M-g") 'calc-kill)
+     (ergoemacs-define-key calc-mode-map (kbd "<deleteline>") 'calc-kill)
+     (ergoemacs-define-key calc-mode-map (kbd "M-t") 'calc-roll-up))))
+
 (add-hook 'calc-load-hook #'ergoemacs-install-calc-bindings)
 
 (ergoemacs-translation normal ()



reply via email to

[Prev in Thread] Current Thread [Next in Thread]