[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/transient e7a16d2006 076/366: Bring back isearch in tra
From: |
Jonas Bernoulli |
Subject: |
[elpa] externals/transient e7a16d2006 076/366: Bring back isearch in transient popups |
Date: |
Tue, 25 Jan 2022 18:54:28 -0500 (EST) |
branch: externals/transient
commit e7a16d200608b0811f65413c158e930b47ab21e5
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>
Bring back isearch in transient popups
---
lisp/transient.el | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 67 insertions(+), 1 deletion(-)
diff --git a/lisp/transient.el b/lisp/transient.el
index bb4bacd1d7..dea07e5ddc 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -104,7 +104,7 @@ features are available:
\"<down>\" moves the cursor to the next suffix.
\"RET\" invokes the suffix the cursor is on.
- \"<mouse-1>\" invokes the clicked on suffix.
-"
+- \"C-s\" and \"C-r\" start isearch in the popup buffer."
:package-version '(transient . "0.2.0")
:group 'transient
:type 'boolean)
@@ -1256,6 +1256,8 @@ edited using the same functions as used for transients.")
(define-key map [transient-push-button] 'transient--do-move)
(define-key map [transient-backward-button] 'transient--do-move)
(define-key map [transient-forward-button] 'transient--do-move)
+ (define-key map [transient-isearch-backward] 'transient--do-move)
+ (define-key map [transient-isearch-forward] 'transient--do-move)
map)
"Base keymap used to map common commands to their transient behavior.
@@ -2884,6 +2886,8 @@ resumes the suspended transient.")
(define-key map (kbd "C-p") 'transient-backward-button)
(define-key map (kbd "<down>") 'transient-forward-button)
(define-key map (kbd "C-n") 'transient-forward-button)
+ (define-key map (kbd "C-r") 'transient-isearch-backward)
+ (define-key map (kbd "C-s") 'transient-isearch-forward)
map))
(defun transient-mouse-push-button (&optional pos)
@@ -2920,6 +2924,68 @@ See `forward-button' for information about N."
(goto-char (point-min))
(forward-button 1))))
+;;;; Popup Isearch
+
+(require 'isearch)
+
+(defvar transient--isearch-mode-map
+ (let ((map (make-sparse-keymap)))
+ (set-keymap-parent map isearch-mode-map)
+ (define-key map [remap isearch-exit] 'transient-isearch-exit)
+ (define-key map [remap isearch-cancel] 'transient-isearch-cancel)
+ (define-key map [remap isearch-abort] 'transient-isearch-abort)
+ map))
+
+(defun transient-isearch-backward (&optional regexp-p)
+ "Do incremental search backward.
+With a prefix argument, do an incremental regular expression
+search instead."
+ (interactive "P")
+ (transient--isearch-setup)
+ (let ((isearch-mode-map transient--isearch-mode-map))
+ (isearch-mode nil regexp-p)))
+
+(defun transient-isearch-forward (&optional regexp-p)
+ "Do incremental search forward.
+With a prefix argument, do an incremental regular expression
+search instead."
+ (interactive "P")
+ (transient--isearch-setup)
+ (let ((isearch-mode-map transient--isearch-mode-map))
+ (isearch-mode t regexp-p)))
+
+(defun transient-isearch-exit ()
+ "Like `isearch-exit' but adapted for `transient'."
+ (interactive)
+ (isearch-exit)
+ (transient--isearch-exit))
+
+(defun transient-isearch-cancel ()
+ "Like `isearch-cancel' but adapted for `transient'."
+ (interactive)
+ (condition-case nil (isearch-cancel) (quit))
+ (transient--isearch-exit))
+
+(defun transient-isearch-abort ()
+ "Like `isearch-abort' but adapted for `transient'."
+ (interactive)
+ (condition-case nil (isearch-abort) (quit))
+ (transient--isearch-exit))
+
+(defun transient--isearch-setup ()
+ (select-window transient--window)
+ (transient--pop-keymap 'transient--transient-map)
+ (transient--pop-keymap 'transient--redisplay-map)
+ (remove-hook 'pre-command-hook #'transient--pre-command)
+ (remove-hook 'post-command-hook #'transient--post-command))
+
+(defun transient--isearch-exit ()
+ (select-window transient--original-window)
+ (transient--push-keymap 'transient--transient-map)
+ (transient--push-keymap 'transient--redisplay-map)
+ (add-hook 'pre-command-hook #'transient--pre-command)
+ (add-hook 'post-command-hook #'transient--post-command))
+
;;;; Other Packages
(declare-function which-key-mode "which-key" (&optional arg))
- [elpa] externals/transient 769fa4380a 169/366: transient-set-level: Fix edge-case, (continued)
- [elpa] externals/transient 769fa4380a 169/366: transient-set-level: Fix edge-case, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient b52c623217 177/366: transient--colorize-key: New function, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient 248862c58e 178/366: Add experimental support for semantic coloring, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient dd9c40adc3 180/366: transient-setup: Handle edge-case, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient 4d44d08e90 181/366: Tell package.el to compile this library properly, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient 53d3885371 182/366: transient--emergency-exit: Show debug message, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient 879f45f0c9 184/366: transient--with-emergency-exit: Define earlier, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient a7f6c3c23d 191/366: transient-plist-to-alist: New utility function, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient cb740f5a4e 203/366: transient-lisp-variable: Add new set-value slot, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient afdf1f0050 066/366: Clean echo-area when the timer shows the popup, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient e7a16d2006 076/366: Bring back isearch in transient popups,
Jonas Bernoulli <=
- [elpa] externals/transient 17ad01e0c7 079/366: Don't explicitly require isearch, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient 1e090b0cd4 240/366: Fixup changelog, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient d5476e1d9f 266/366: Update changelog, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient 45975c24e1 282/366: manual: Update info about `incompatible' slot, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient 2b1d184c6a 287/366: make: Remove dash dependency, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient 62769279a6 298/366: transient--describe-function: Move definition, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient 7f5520b330 307/366: Add support for non-proportional text, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient 129c2b1685 315/366: make: Set more variables in default.mk, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient abbe17560c 318/366: manual: Move common settings to .orgconfig, Jonas Bernoulli, 2022/01/25
- [elpa] externals/transient 51c50d8c82 319/366: manual: Use updated support for definition commands, Jonas Bernoulli, 2022/01/25