From 4fff58dd1ec11543e2b0195f10cefc1746748499 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Sat, 4 Jul 2015 17:10:55 -0700 Subject: [PATCH] Factor isearch word description into new function * lisp/isearch.el (isearch--describe-word-mode): New function. (isearch-message-prefix, isearch-query-replace): Use it. --- lisp/isearch.el | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/lisp/isearch.el b/lisp/isearch.el index a103c5ab59b..8d4bf24c6fb 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1766,16 +1766,8 @@ replacements from Isearch is `M-s w ... M-%'." (query-replace-read-to isearch-string (concat "Query replace" - (if (or delimited isearch-word) - (let* ((symbol (or delimited isearch-word)) - (string (and symbol (symbolp symbol) - (get symbol 'isearch-message-prefix)))) - (if (stringp string) - ;; Move space from the end to the beginning. - (replace-regexp-in-string "\\(.*\\) \\'" " \\1" string) - " word")) - "") - (if isearch-regexp " regexp" "") + (isearch--describe-word-mode (or delimited isearch-word) t) + (if isearch-regexp " regexp" "") (if backward " backward" "") (if (and transient-mark-mode mark-active) " in region" "")) isearch-regexp) @@ -2521,6 +2513,21 @@ If there is no completion possible, say so and continue searching." (isearch-message-suffix c-q-hack))) (if c-q-hack m (let ((message-log-max nil)) (message "%s" m))))) +(defun isearch--describe-word-mode (word-mode &optional space-before) + "Make a string for describing WORD-MODE. +If SPACE-BEFORE is non-nil, put a space before, instead of after, +the word mode." + (let ((description + (cond ((and (symbolp word-mode) + (get word-mode 'isearch-message-prefix)) + (get word-mode 'isearch-message-prefix)) + (word-mode "word ") + (t "")))) + (if space-before + ;; Move space from the end to the beginning. + (replace-regexp-in-string "\\(.*\\) \\'" " \\1" description) + description))) + (defun isearch-message-prefix (&optional ellipsis nonincremental) ;; If about to search, and previous search regexp was invalid, ;; check that it still is. If it is valid now, @@ -2547,13 +2554,9 @@ If there is no completion possible, say so and continue searching." (let ((np (cdr (assq 'isearch-message-prefix props)))) (if np (setq prefix (concat np prefix))))) isearch-filter-predicate) - prefix) - (if isearch-word - (or (and (symbolp isearch-word) - (get isearch-word 'isearch-message-prefix)) - "word ") - "") - (if isearch-regexp "regexp " "") + prefix) + (isearch--describe-word-mode isearch-word) + (if isearch-regexp "regexp " "") (cond (multi-isearch-file-list "multi-file ") (multi-isearch-buffer-list "multi-buffer ") -- 2.39.2