diff options
| author | Juri Linkov | 2008-07-24 00:09:01 +0000 |
|---|---|---|
| committer | Juri Linkov | 2008-07-24 00:09:01 +0000 |
| commit | 67c18958a50592d2ed96487d3c92d13814a5f852 (patch) | |
| tree | 64ed27b34cc5d0dbc3547f0793f8e31a660368de | |
| parent | 1fbb8c2e7d23e83a5492e73e0208abf47bf5c95e (diff) | |
| download | emacs-67c18958a50592d2ed96487d3c92d13814a5f852.tar.gz emacs-67c18958a50592d2ed96487d3c92d13814a5f852.zip | |
(filesets-commands): Add commands for "Isearch" and
"Isearch (regexp)". Replace `query-replace' and `query-replace-regexp'
with `perform-replace' using `filesets-cmd-query-replace-regexp-getargs'.
(filesets-run-cmd): Call `fn' only once if it is `multi-isearch-files'
or `multi-isearch-files-regexp'.
(filesets-cmd-query-replace-getargs): Call standard function
`query-replace-read-args' to read `query-replace' arguments.
Add `multi-query-replace-map'.
(filesets-cmd-query-replace-regexp-getargs)
(filesets-cmd-isearch-getargs): New functions.
| -rw-r--r-- | lisp/filesets.el | 103 |
1 files changed, 57 insertions, 46 deletions
diff --git a/lisp/filesets.el b/lisp/filesets.el index 064cfbfb0e1..a8d70df36d5 100644 --- a/lisp/filesets.el +++ b/lisp/filesets.el | |||
| @@ -565,12 +565,18 @@ including directory trees to the menu can take a lot of memory." | |||
| 565 | :group 'filesets) | 565 | :group 'filesets) |
| 566 | 566 | ||
| 567 | (defcustom filesets-commands | 567 | (defcustom filesets-commands |
| 568 | `(("Query Replace" | 568 | `(("Isearch" |
| 569 | query-replace | 569 | multi-isearch-files |
| 570 | (filesets-cmd-isearch-getargs)) | ||
| 571 | ("Isearch (regexp)" | ||
| 572 | multi-isearch-files-regexp | ||
| 573 | (filesets-cmd-isearch-getargs)) | ||
| 574 | ("Query Replace" | ||
| 575 | perform-replace | ||
| 570 | (filesets-cmd-query-replace-getargs)) | 576 | (filesets-cmd-query-replace-getargs)) |
| 571 | ("Query Replace (regexp)" | 577 | ("Query Replace (regexp)" |
| 572 | query-replace-regexp | 578 | perform-replace |
| 573 | (filesets-cmd-query-replace-getargs)) | 579 | (filesets-cmd-query-replace-regexp-getargs)) |
| 574 | ("Grep <<selection>>" | 580 | ("Grep <<selection>>" |
| 575 | "grep" | 581 | "grep" |
| 576 | ("-n " filesets-get-quoted-selection " " "<<file-name>>")) | 582 | ("-n " filesets-get-quoted-selection " " "<<file-name>>")) |
| @@ -1623,38 +1629,40 @@ Replace <file-name> or <<file-name>> with filename." | |||
| 1623 | (when files | 1629 | (when files |
| 1624 | (let ((fn (filesets-cmd-get-fn cmd-name)) | 1630 | (let ((fn (filesets-cmd-get-fn cmd-name)) |
| 1625 | (args (filesets-cmd-get-args cmd-name))) | 1631 | (args (filesets-cmd-get-args cmd-name))) |
| 1626 | (dolist (this files nil) | 1632 | (if (memq fn '(multi-isearch-files multi-isearch-files-regexp)) |
| 1627 | (save-excursion | 1633 | (apply fn args) |
| 1628 | (save-restriction | 1634 | (dolist (this files nil) |
| 1629 | (let ((buffer (filesets-find-file this))) | 1635 | (save-excursion |
| 1630 | (when buffer | 1636 | (save-restriction |
| 1631 | (goto-char (point-min)) | 1637 | (let ((buffer (filesets-find-file this))) |
| 1632 | (let () | 1638 | (when buffer |
| 1633 | (cond | 1639 | (goto-char (point-min)) |
| 1634 | ((stringp fn) | 1640 | (let () |
| 1635 | (let* ((args | 1641 | (cond |
| 1636 | (let ((txt "")) | 1642 | ((stringp fn) |
| 1637 | (dolist (this args txt) | 1643 | (let* ((args |
| 1638 | (setq txt | 1644 | (let ((txt "")) |
| 1639 | (concat txt | 1645 | (dolist (this args txt) |
| 1640 | (filesets-run-cmd--repl-fn | 1646 | (setq txt |
| 1641 | this | 1647 | (concat txt |
| 1642 | (lambda (this) | 1648 | (filesets-run-cmd--repl-fn |
| 1643 | (if (equal txt "") "" " ") | 1649 | this |
| 1644 | (format "%s" this)))))))) | 1650 | (lambda (this) |
| 1645 | (cmd (concat fn " " args))) | 1651 | (if (equal txt "") "" " ") |
| 1646 | (filesets-cmd-show-result | 1652 | (format "%s" this)))))))) |
| 1647 | cmd (shell-command-to-string cmd)))) | 1653 | (cmd (concat fn " " args))) |
| 1648 | ((symbolp fn) | 1654 | (filesets-cmd-show-result |
| 1649 | (let ((args | 1655 | cmd (shell-command-to-string cmd)))) |
| 1650 | (let ((argl nil)) | 1656 | ((symbolp fn) |
| 1651 | (dolist (this args argl) | 1657 | (let ((args |
| 1652 | (setq argl | 1658 | (let ((argl nil)) |
| 1653 | (append argl | 1659 | (dolist (this args argl) |
| 1654 | (filesets-run-cmd--repl-fn | 1660 | (setq argl |
| 1655 | this | 1661 | (append argl |
| 1656 | 'list))))))) | 1662 | (filesets-run-cmd--repl-fn |
| 1657 | (apply fn args)))))))))))))))) | 1663 | this |
| 1664 | 'list))))))) | ||
| 1665 | (apply fn args))))))))))))))))) | ||
| 1658 | 1666 | ||
| 1659 | (defun filesets-get-cmd-menu () | 1667 | (defun filesets-get-cmd-menu () |
| 1660 | "Create filesets command menu." | 1668 | "Create filesets command menu." |
| @@ -1668,16 +1676,19 @@ Replace <file-name> or <<file-name>> with filename." | |||
| 1668 | ;;; sample commands | 1676 | ;;; sample commands |
| 1669 | (defun filesets-cmd-query-replace-getargs () | 1677 | (defun filesets-cmd-query-replace-getargs () |
| 1670 | "Get arguments for `query-replace' and `query-replace-regexp'." | 1678 | "Get arguments for `query-replace' and `query-replace-regexp'." |
| 1671 | (let* ((from-string (read-string "Filesets query replace: " | 1679 | (let ((common (query-replace-read-args "Filesets query replace" nil t))) |
| 1672 | "" | 1680 | (list (nth 0 common) (nth 1 common) t nil (nth 2 common) nil |
| 1673 | 'query-replace-history)) | 1681 | multi-query-replace-map))) |
| 1674 | (to-string (read-string | 1682 | |
| 1675 | (format "Filesets query replace %s with: " from-string) | 1683 | (defun filesets-cmd-query-replace-regexp-getargs () |
| 1676 | "" | 1684 | "Get arguments for `query-replace' and `query-replace-regexp'." |
| 1677 | 'query-replace-history)) | 1685 | (let ((common (query-replace-read-args "Filesets query replace" t t))) |
| 1678 | (delimited (y-or-n-p | 1686 | (list (nth 0 common) (nth 1 common) t t (nth 2 common) nil |
| 1679 | "Filesets query replace: respect word boundaries? "))) | 1687 | multi-query-replace-map))) |
| 1680 | (list from-string to-string delimited))) | 1688 | |
| 1689 | (defun filesets-cmd-isearch-getargs () | ||
| 1690 | "Get arguments for `multi-isearch-files' and `multi-isearch-files-regexp'." | ||
| 1691 | (list files)) | ||
| 1681 | 1692 | ||
| 1682 | (defun filesets-cmd-shell-command-getargs () | 1693 | (defun filesets-cmd-shell-command-getargs () |
| 1683 | "Get arguments for `filesets-cmd-shell-command'." | 1694 | "Get arguments for `filesets-cmd-shell-command'." |