[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/evil-escape 3637f13210 055/133: Correctly handle iedit-sta
|
From: |
ELPA Syncer |
|
Subject: |
[nongnu] elpa/evil-escape 3637f13210 055/133: Correctly handle iedit-state |
|
Date: |
Wed, 3 Jan 2024 21:59:52 -0500 (EST) |
branch: elpa/evil-escape
commit 3637f132107ace2d3f5a25d713e49742033e35ce
Author: syl20bnr <sylvain.benner@gmail.com>
Commit: syl20bnr <sylvain.benner@gmail.com>
Correctly handle iedit-state
fixes #25
---
evil-escape.el | 31 ++++++++++++++++++++++++-------
1 file changed, 24 insertions(+), 7 deletions(-)
diff --git a/evil-escape.el b/evil-escape.el
index a060682da4..1adfc59c93 100644
--- a/evil-escape.el
+++ b/evil-escape.el
@@ -5,7 +5,7 @@
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; Keywords: convenience editing evil
;; Created: 22 Oct 2014
-;; Version: 2.22
+;; Version: 2.23
;; Package-Requires: ((emacs "24") (evil "1.0.9"))
;; URL: https://github.com/syl20bnr/evil-escape
@@ -116,6 +116,12 @@ This variable is used to restore the original function
bound to the
first key of the escape key sequence when `evil-escape'
mode is disabled.")
+(defvar evil-escape-iedit-state-shadowed-func nil
+ "Original function of `evil-iedit-state-map' shadowed by `evil-escape'.
+This variable is used to restore the original function bound to the
+first key of the escape key sequence when `evil-escape'
+mode is disabled.")
+
;;;###autoload
(define-minor-mode evil-escape-mode
"Buffer-local minor mode to escape insert state and everythin else
@@ -246,9 +252,12 @@ with a key sequence."
;; iedit state if installed
(eval-after-load 'evil-iedit-state
'(progn
+ (setq evil-escape-iedit-state-shadowed-func
+ (or evil-escape-iedit-state-shadowed-func
+ (lookup-key evil-iedit-state-map (evil-escape--first-key))))
(eval `(evil-escape-define-escape "iedit-state" evil-iedit-state-map
evil-iedit-state/quit-iedit-mode
- :shadowed-func
,evil-escape-motion-state-shadowed-func))
+ :shadowed-func
,evil-escape-iedit-state-shadowed-func))
(eval '(evil-escape-define-escape "iedit-insert-state"
evil-iedit-insert-state-map
evil-iedit-state/quit-iedit-mode
:insert-func
evil-escape--default-insert-func
@@ -278,7 +287,8 @@ with a key sequence."
(kbd first-key) evil-escape-lisp-state-shadowed-func))
;; iedit state
(eval-after-load 'evil-iedit-state
- '(progn (define-key evil-iedit-state-map (kbd first-key) nil)
+ '(progn (define-key evil-iedit-state-map
+ (kbd first-key) evil-escape-iedit-state-shadowed-func)
(define-key evil-iedit-insert-state-map (kbd first-key) nil)))))
(defun evil-escape--default-insert-func (key)
@@ -326,9 +336,16 @@ with a key sequence."
the underlying major or minor modes map.
Once the command KEY passed through MAP the function HFUNC is removed
from the `post-command-hook'."
- (if (lookup-key map key)
+ (if evil-escape--first-pass
;; first pass
- (define-key map key shadowed)
+ (progn
+ (if shadowed
+ (define-key map key shadowed)
+ ;; trick of the death, we remove the current binding
+ ;; in order to get the binding in the other active key maps
+ (define-key map key nil)
+ (define-key map key (key-binding key)))
+ (setq evil-escape--first-pass nil))
;; second pass
(let ((escape-func (evil-escape--escape-function-symbol from)))
(define-key map key escape-func)
@@ -344,9 +361,9 @@ from the `post-command-hook'."
,map
',shadowed-func
',passthrough)))
+ (setq evil-escape--first-pass t)
(add-hook 'post-command-hook passthrough)
- (unless (or (and (boundp 'isearch-mode) (symbol-value 'isearch-mode))
- (minibufferp))
+ (unless (or (bound-and-true-p isearch-mode) (minibufferp))
(setq unread-command-events
(append unread-command-events (listify-key-sequence
(evil-escape--first-key)))))))
- [nongnu] elpa/evil-escape 5da641b6e6 019/133: Quit ert buffers, (continued)
- [nongnu] elpa/evil-escape 5da641b6e6 019/133: Quit ert buffers, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape fe21e8f256 004/133: Fix error in readme, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 07c6c1b4da 007/133: Fixes #2 Symbol's value as variable is void: isearch-abort, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 1d09324c72 011/133: Fix byte-compilation and defcustom, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 7aa2bb2155 024/133: Suppress key-chord dependency (v2.0), ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 2e7bf1e62e 021/133: Support undo-tree, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape e0a0c9a9ee 023/133: Add support for paradox and gist-list menu, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 0b62cb6637 025/133: Fix multiple inserted occurrences of `f` in isearch and ex-command context, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 6cb4fa408a 026/133: Add evil-iedit-state, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 6d46b81bbc 030/133: Fix regression for evil-iedit-state, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 3637f13210 055/133: Correctly handle iedit-state,
ELPA Syncer <=
- [nongnu] elpa/evil-escape da5498d25e 035/133: Correctly restore evil-lisp-state shadowed function by evil-escape, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape cf3e18673d 051/133: Undefine mapping on first key when evil-escape is disabled, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape cbfc43840f 063/133: Ensure that map is defined when undefining keys, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape b8c9b4631d 049/133: Add support for helm-ag-edit, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape b205051996 056/133: More stable passthrough, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape afa9c9c321 067/133: Fixes #37 Capital r deletes a char inappropriately, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 67843e9dd4 041/133: Fix recursive `f` input during isearch in certain buffers, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape e78ffcdbeb 036/133: Explicitly disable any running transient map, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape e556c7a6b6 057/133: Fix line highlight flicker on escape, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 05d9e5fc80 052/133: Don't break deft-mode, ELPA Syncer, 2024/01/03