[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 84a51ab: Allow to save the current el-search to a register
From: |
Michael Heerdegen |
Subject: |
[elpa] master 84a51ab: Allow to save the current el-search to a register |
Date: |
Sun, 28 Jan 2018 10:54:46 -0500 (EST) |
branch: master
commit 84a51ab69fd4aa73069f6f46adab8f79043681c1
Author: Michael Heerdegen <address@hidden>
Commit: Michael Heerdegen <address@hidden>
Allow to save the current el-search to a register
* el-search/el-search.el (el-search-to-register)
(el-search-clone-to-register): New commands.
(register-val-jump-to, register-val-describe): Implement methods for
`el-search-object' values.
---
packages/el-search/NEWS | 6 ++++++
packages/el-search/el-search.el | 33 ++++++++++++++++++++++++++++++++-
2 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/packages/el-search/NEWS b/packages/el-search/NEWS
index 7548e1d..ffa4047 100644
--- a/packages/el-search/NEWS
+++ b/packages/el-search/NEWS
@@ -1,6 +1,12 @@
Some of the user visible news were:
+Version: 1.5.2
+
+ The new command `el-search-to-register' allows to save the current
+ search (including its state) to a register and later make that
+ search current again with `jump-to-register' (C-x r j).
+
Version: 1.5.1
The new command `el-search-ibuffer-marked-buffers' el-searches the
diff --git a/packages/el-search/el-search.el b/packages/el-search/el-search.el
index c519446..a560672 100644
--- a/packages/el-search/el-search.el
+++ b/packages/el-search/el-search.el
@@ -7,7 +7,7 @@
;; Created: 29 Jul 2015
;; Keywords: lisp
;; Compatibility: GNU Emacs 25
-;; Version: 1.5.1
+;; Version: 1.5.2
;; Package-Requires: ((emacs "25") (stream "2.2.4") (cl-print "1.0"))
@@ -119,6 +119,11 @@
;; Grab the symbol or sexp under point and initiate an el-search
;; for other occurrences.
;;
+;; M-x el-search-to-register
+;; Save the current search to an Emacs register. Use C-x r j
+;; (`jump-to-register') to make that search current and jump to
+;; the latest position.
+;;
;;
;; The setup you'll need for your init file is trivial: just define
;; the key bindings you want to use (all important commands are
@@ -2982,6 +2987,32 @@ related user options."
(lambda (search) (setf (alist-get 'description (el-search-object-properties
search))
"el-search-ibuffer-marked-files"))))
+;;;; Register usage
+
+(defun el-search-to-register (register &optional el-search-object)
+ "Prompt for a register and save the EL-SEARCH-OBJECT to it.
+In an interactive call or when EL-SEARCH-OBJECT is nil, the
+current search is used."
+ (interactive (list (register-read-with-preview "Save current search to
register: ")))
+ (set-register register (or el-search-object el-search--current-search)))
+
+(defun el-search-clone-to-register (register &optional el-search-object)
+ "Prompt for a register and save a clone of the EL-SEARCH-OBJECT to it.
+In an interactive call or when EL-SEARCH-OBJECT is nil, the
+current search is used.
+
+This is similar to `el-search-to-register' but what is saved is a
+clone with an individual state."
+ (interactive (list (register-read-with-preview "Save clone of current search
to register: ")))
+ (set-register register (copy-el-search-object (or el-search-object
el-search--current-search))))
+
+(cl-defmethod register-val-jump-to ((val el-search-object) _arg)
+ (el-search-jump-to-search-head val))
+
+(cl-defmethod register-val-describe ((val el-search-object) _verbose) ;VERBOSE
is only used by C-x r v
+ (let ((print-circle nil)) ;bug#30070
+ (cl-prin1 val)))
+
;;;; Query-replace
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] master 84a51ab: Allow to save the current el-search to a register,
Michael Heerdegen <=