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

[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
 



reply via email to

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