[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 ()
- [elpa] externals/ergoemacs-mode 0a189f3 232/325: Minor cleanup, (continued)
- [elpa] externals/ergoemacs-mode 0a189f3 232/325: Minor cleanup, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode bc28407 019/325: Remove icicles tests, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 706e35e 024/325: Remove dead code, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode c3e7830 023/325: Remove option to bind C-c and C-x as copy/cut, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 25f5be8 022/325: Merge branch 'ctl-x-c', Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 0935e87 020/325: Remove timeout for ctl-x-c, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode b62f068 030/325: Remove more package stuff, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 46c76c0 036/325: Remove a little modal, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode c88308e 026/325: Make ergoemacs-test-keep-ctl-s work, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode d97731c 266/325: Add tab indent region when active again, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 21624e9 269/325: Bug fix for calculate bindings and update for the modes modified,
Stefan Monnier <=
- [elpa] externals/ergoemacs-mode 3edd1e1 268/325: Save and restore keymaps on startup, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 8cfa471 270/325: Use nadvice, as requested by Stephan Monnier, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode c9d4c1b 015/325: Remove ergoemacs-package, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode b2a8bb7 099/325: Make 'compile' the default make target, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 18b3859 121/325: Simplify split-window binding, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode b378df1 105/325: Reindent, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode c973446 124/325: Remove redundant fixed-newline, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode cbfa5a9 115/325: Remove some now obsolete <apps> tests, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 1bd971e 137/325: Remove iswitchb bindings and misc cleanup, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 377d498 107/325: Set variables properly. Lots of duplication., Stefan Monnier, 2021/10/23