[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/el-search 2c1cdeb 066/332: factor out minibuffer setup
From: |
Stefan Monnier |
Subject: |
[elpa] externals/el-search 2c1cdeb 066/332: factor out minibuffer setup hook fun; treat empty input |
Date: |
Tue, 1 Dec 2020 15:48:12 -0500 (EST) |
branch: externals/el-search
commit 2c1cdebc7d95c55c94b364d6cf0b20d708d5474e
Author: Michael Heerdegen <michael_heerdegen@web.de>
Commit: Michael Heerdegen <michael_heerdegen@web.de>
factor out minibuffer setup hook fun; treat empty input
---
el-search.el | 40 ++++++++++++++++++++--------------------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/el-search.el b/el-search.el
index c71bb19..00b1b15 100644
--- a/el-search.el
+++ b/el-search.el
@@ -273,35 +273,35 @@ The default value is `exp'."
map)
"Map for reading input with `el-search-read-expression'.")
+(defun el-search--setup-minibuffer ()
+ (emacs-lisp-mode)
+ (use-local-map el-search-read-expression-map)
+ (setq font-lock-mode t)
+ (funcall font-lock-function 1)
+ (backward-sexp)
+ (indent-sexp)
+ (goto-char (point-max))
+ (when-let ((this-sexp (with-current-buffer (window-buffer
(minibuffer-selected-window))
+ (thing-at-point 'sexp))))
+ (let ((more-defaults (list (concat "'" this-sexp))))
+ (setq-local minibuffer-default-add-function
+ (lambda () (if (listp minibuffer-default)
+ (append minibuffer-default more-defaults)
+ (cons minibuffer-default more-defaults)))))))
+
;; $$$$$FIXME: this should be in Emacs! There is only a helper
`read--expression'.
(defun el-search-read-expression (prompt &optional initial-contents hist
default read)
"Read expression for `my-eval-expression'."
- (minibuffer-with-setup-hook
- (lambda ()
- (emacs-lisp-mode)
- (use-local-map el-search-read-expression-map)
- (setq font-lock-mode t)
- (funcall font-lock-function 1)
- (backward-sexp)
- (indent-sexp)
- (goto-char (point-max)))
+ (minibuffer-with-setup-hook #'el-search--setup-minibuffer
(read-from-minibuffer prompt initial-contents
el-search-read-expression-map read
(or hist 'read-expression-history) default)))
(defvar el-search--initial-mb-contents nil)
(defun el-search--read-pattern (prompt &optional default read)
- (let ((this-sexp (sexp-at-point)))
- (minibuffer-with-setup-hook
- (lambda ()
- (when this-sexp
- (let ((more-defaults (list (concat "'" (el-search--print
this-sexp)))))
- (setq-local minibuffer-default-add-function
- (lambda () (if (listp minibuffer-default)
- (append minibuffer-default more-defaults)
- (cons minibuffer-default more-defaults)))))))
- (el-search-read-expression
- prompt el-search--initial-mb-contents 'el-search-history default
read))))
+ (let ((input (el-search-read-expression
+ prompt el-search--initial-mb-contents 'el-search-history
default read)))
+ (if (or read (not (string= input ""))) input (car el-search-history))))
(defun el-search--end-of-sexp ()
;;Point must be at sexp beginning
- [elpa] externals/el-search 3b5cce3 043/332: fix compiler errors and warnings, (continued)
- [elpa] externals/el-search 3b5cce3 043/332: fix compiler errors and warnings, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 06af085 044/332: edit TODO list, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search ec0c3e8 053/332: el-search: new pattern type `not', Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 0809f99 072/332: New user option: el-search-use-sloppy-strings, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search ba82854 022/332: rename a local variable, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 1222012 046/332: prerequisites to allow replace with multiple expressions, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 0af261a 050/332: el-search: some cleanup, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 3370594 060/332: el-search: New pattern type `l', Stefan Monnier, 2020/12/01
- [elpa] externals/el-search b936a28 062/332: Go to isearch left end when starting replace, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 59c6139 064/332: Complete and document what a SYMBOL in `l' matches, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 2c1cdeb 066/332: factor out minibuffer setup hook fun; treat empty input,
Stefan Monnier <=
- [elpa] externals/el-search 02168e0 068/332: Tweak docstring of el-search--ensure-sexp-start, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search d6ae854 070/332: Minor change in `string' pattern, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search a0b44dd 078/332: Improve documentation and argument names of el-search-query-replace, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 1864f4a 077/332: Comment and whitespace changes only, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search b5b6d83 089/332: Make query-replace accept FROM -> TO style input, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 68f10d7 091/332: Reduce duration of a `sit-for', Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 29d6f46 090/332: Rename a local variable, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 5b608a1 094/332: Set initial input for replace when coming from el-search-pattern, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 9c3c04d 093/332: Clean up el-search-read-expression-map; add some doc, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search b4e79fb 081/332: Add patterns for character properties, Stefan Monnier, 2020/12/01