all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Juri Linkov <juri@jurta.org>
To: rms@gnu.org
Cc: emacs-devel@gnu.org
Subject: Re: isearch multiple buffers
Date: Sat, 20 Oct 2007 03:08:08 +0300	[thread overview]
Message-ID: <87lk9ylkbb.fsf@jurta.org> (raw)
In-Reply-To: <E1IgMvR-0001IP-R9@fencepost.gnu.org> (Richard Stallman's message of "Fri\, 12 Oct 2007 11\:59\:45 -0400")

[-- Attachment #1: Type: text/plain, Size: 5194 bytes --]

>     >     Perhaps, we should add a new user option with 3 possible values:
>     >     1. don't stop in the initial buffer
>     >     2. stop once in the initial buffer
>       3. stop in every buffer which contains the search string
> 	 (and always stop in the first buffer)
>
>     So there are three useful options (and let's try using the 3-rd as the
>     default).
>
> If you want to implement all three, please do.

I implemented a new user option isearch-buffers-pause with these
three values, with the default to pause in every buffer that contains
the search string.

Also I implemented a new minor mode isearch-buffers-minor-mode
that sets a group of variables necessary for this feature.
Turning off this minor mode deletes all created buffer-local bindings.
So any major mode that uses this feature can simply set the variable
isearch-buffers-next-buffer-function and call isearch-buffers-minor-mode.

The code implementing this feature has so many lines now that I think it
needs a separate file.  One possible name would be isearchb.el, but this
name is already occupied by another package.  So I think a good name will
be isearch-et.el (isearch everything :-) as I plan to add more isearch
extensions to this new file.

Below are two NEWS entries, a patch for the first package add-log.el
that uses this feature, a small patch for isearch.el, and a new file
isearch-et.el:

** The package isearch-et.el has been added.  It implements a new mode
`isearch-buffers-minor-mode' that allows isearch to search through
multiple buffers.  In this mode a new variable
`isearch-buffers-next-buffer-function' defines the function to call to get
the next buffer to search in the series of multiple buffers.

** isearch can now search through multiple ChangeLog files.
When running isearch in a ChangeLog file, if the search fails,
then another C-s tries searching the previous ChangeLog,
if there is one (e.g. go from ChangeLog to ChangeLog.12).

Index: lisp/add-log.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/add-log.el,v
retrieving revision 1.197
diff -c -r1.197 add-log.el
*** lisp/add-log.el	10 Oct 2007 18:52:44 -0000	1.197
--- lisp/add-log.el	20 Oct 2007 00:00:55 -0000
***************
*** 760,766 ****
         'change-log-resolve-conflict)
    (set (make-local-variable 'adaptive-fill-regexp) "\\s *")
    (set (make-local-variable 'font-lock-defaults)
!        '(change-log-font-lock-keywords t nil nil backward-paragraph)))
  
  ;; It might be nice to have a general feature to replace this.  The idea I
  ;; have is a variable giving a regexp matching text which should not be
--- 760,788 ----
         'change-log-resolve-conflict)
    (set (make-local-variable 'adaptive-fill-regexp) "\\s *")
    (set (make-local-variable 'font-lock-defaults)
!        '(change-log-font-lock-keywords t nil nil backward-paragraph))
!   (set (make-local-variable 'isearch-buffers-next-buffer-function)
!        'change-log-next-buffer)
!   (isearch-buffers-minor-mode))
! 
! (defun change-log-next-buffer (&optional buffer wrap)
!   "Return the next buffer in the series of ChangeLog file buffers.
! This function is used for multiple buffers isearch.
! A sequence of buffers is formed by ChangeLog files with decreasing
! numeric file name suffixes in the directory of the initial ChangeLog
! file were isearch was started."
!   (let* ((name (change-log-name))
! 	 (files (cons name (sort (file-expand-wildcards
! 				  (concat name "[-.][0-9]*"))
! 				 (lambda (a b)
! 				   (version< (substring b (length name))
! 					     (substring a (length name)))))))
! 	 (files (if isearch-forward files (reverse files))))
!     (find-file-noselect
!      (if wrap
! 	 (car files)
!        (cadr (member (file-name-nondirectory (buffer-file-name buffer))
! 		     files))))))
  
  ;; It might be nice to have a general feature to replace this.  The idea I
  ;; have is a variable giving a regexp matching text which should not be

Index: lisp/isearch.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/isearch.el,v
retrieving revision 1.303
diff -c -r1.303 isearch.el
*** lisp/isearch.el	29 Aug 2007 05:28:05 -0000	1.303
--- lisp/isearch.el	20 Oct 2007 00:02:31 -0000
***************
*** 2035,2042 ****
  			   (if isearch-forward (< pos2 pos1) (> pos2 pos1))))
  	      (setq pos1 pos2)
  	      (set-match-data match-data)))))
!     (if pos1
! 	(goto-char pos1))
      pos1))
  
  (defun isearch-search ()
--- 2045,2059 ----
  			   (if isearch-forward (< pos2 pos1) (> pos2 pos1))))
  	      (setq pos1 pos2)
  	      (set-match-data match-data)))))
!     (when pos1
!       ;; When using multiple buffers isearch, switch to the new buffer here,
!       ;; because `save-excursion' above doesn't allow doing it inside funcall.
!       (if (and (boundp 'isearch-buffers-next-buffer-function)
! 	       isearch-buffers-next-buffer-function
! 	       (boundp 'isearch-buffers-current-buffer)
! 	       (buffer-live-p isearch-buffers-current-buffer))
! 	  (switch-to-buffer isearch-buffers-current-buffer))
!       (goto-char pos1))
      pos1))
  
  (defun isearch-search ()


[-- Attachment #2: isearch-et.el --]
[-- Type: application/emacs-lisp, Size: 7445 bytes --]

[-- Attachment #3: Type: text/plain, Size: 45 bytes --]


-- 
Juri Linkov
http://www.jurta.org/emacs/

[-- Attachment #4: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

  parent reply	other threads:[~2007-10-20  0:08 UTC|newest]

Thread overview: 164+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-06 19:52 isearch multiple buffers Juri Linkov
2007-10-07 15:37 ` Dan Nicolaescu
2007-10-08 18:03 ` Richard Stallman
2007-10-08 19:18   ` Juri Linkov
2007-10-08 19:59     ` Eric Hanchrow
2007-10-08 22:52       ` Juri Linkov
2007-10-11  9:25         ` Johan Bockgård
2007-10-11  9:45           ` Juri Linkov
2007-10-11 14:14             ` Stefan Monnier
2007-10-11 23:48               ` Juri Linkov
2007-10-11 17:41             ` Richard Stallman
2007-10-11 23:52               ` Juri Linkov
2007-10-12  8:42                 ` Johan Bockgård
2007-10-12 15:59                 ` Richard Stallman
2007-10-12 16:37                   ` Stefan Monnier
2007-10-20  0:08                   ` Juri Linkov [this message]
2007-10-21  7:26                     ` Richard Stallman
2007-10-21 20:37                       ` Juri Linkov
2007-10-21 23:39                         ` Miles Bader
2007-10-21 23:50                           ` Lennart Borgman (gmail)
2007-10-22  0:51                             ` Stefan Monnier
2007-10-22  1:01                               ` Miles Bader
2007-10-23  7:12                                 ` Richard Stallman
2007-10-23  8:17                                   ` David Kastrup
2007-10-23 17:53                                     ` Richard Stallman
2007-10-23 20:04                                       ` Eli Zaretskii
2007-10-23 21:44                                         ` Andreas Schwab
2007-10-24  4:22                                           ` Eli Zaretskii
2007-10-25  2:10                                             ` Richard Stallman
2007-10-24  8:33                                         ` Richard Stallman
2007-10-23 20:01                                   ` Eli Zaretskii
2007-10-23 23:33                                     ` Miles Bader
2007-10-24  0:52                                       ` Stefan Monnier
2007-10-24  4:18                                         ` Eli Zaretskii
2007-10-24  5:51                                           ` Stefan Monnier
2007-10-24 19:00                                             ` Eli Zaretskii
2007-10-24  4:16                                       ` Eli Zaretskii
2007-10-24  4:51                                         ` Miles Bader
2007-10-24 18:58                                           ` Eli Zaretskii
2007-10-24 23:55                                             ` Miles Bader
2007-10-25  4:15                                               ` Eli Zaretskii
2007-10-25  6:21                                                 ` Miles Bader
2007-10-25 20:55                                                   ` Juri Linkov
2007-10-25 21:42                                                   ` Eli Zaretskii
2007-10-25 11:02                                                 ` Robert J. Chassell
2007-10-25 22:08                                                   ` Eli Zaretskii
2007-10-26  1:30                                                     ` Robert J. Chassell
2007-10-26  9:32                                                       ` Eli Zaretskii
2007-10-26 10:05                                                         ` Robert J. Chassell
2007-10-29  0:08                                                     ` Michael Olson
2007-10-26 15:16                                                 ` Dan Nicolaescu
2007-10-26 15:32                                                   ` Juanma Barranquero
2007-10-26 15:36                                                     ` David Kastrup
2007-10-26 15:42                                                       ` Juanma Barranquero
2007-10-26 18:42                                                         ` Stefan Monnier
2007-10-26 19:23                                                           ` Eli Zaretskii
2007-10-26 18:52                                                         ` Eli Zaretskii
2007-10-26 18:49                                                       ` Eli Zaretskii
2007-10-26 19:21                                                   ` Eli Zaretskii
2007-10-26 19:41                                                     ` Dan Nicolaescu
2007-10-26 20:01                                                       ` Jason Rumney
2007-10-26 20:19                                                         ` David Kastrup
2007-10-26 20:01                                                       ` Eli Zaretskii
2007-10-26 20:38                                                       ` Stefan Monnier
2007-10-27 13:57                                                       ` Richard Stallman
2007-10-27 15:01                                                         ` Eli Zaretskii
2007-10-28 13:50                                                           ` Richard Stallman
2007-10-27 17:28                                                         ` Dan Nicolaescu
2007-10-27 22:16                                                           ` Eli Zaretskii
2007-10-28 13:50                                                           ` Richard Stallman
2007-10-28 13:50                                                           ` Richard Stallman
2007-10-28 16:45                                                             ` desupporting X10 and old X11 releases (was: Re: isearch multiple buffers) Dan Nicolaescu
2007-10-29  7:30                                                               ` desupporting X10 and old X11 releases Jan Djärv
2007-10-29 19:42                                                                 ` Eli Zaretskii
2007-10-30  7:33                                                                   ` Jan Djärv
2007-10-29 23:35                                                                 ` Richard Stallman
2007-10-30 13:52                                                                   ` Ulrich Mueller
2007-10-31  7:46                                                                     ` Richard Stallman
2007-10-29  9:21                                                               ` desupporting X10 and old X11 releases (was: Re: isearch multiple buffers) Richard Stallman
2007-10-29  9:21                                                               ` Richard Stallman
2007-10-28 18:38                                                             ` abandon K&R C ?(was: " Dan Nicolaescu
2007-10-29  9:21                                                               ` Richard Stallman
2007-10-29 19:46                                                                 ` Eli Zaretskii
2007-10-29 23:41                                                                   ` abandon K&R C ? Miles Bader
2007-10-29  7:21                                                             ` isearch multiple buffers Jan Djärv
2007-10-29 23:35                                                               ` Richard Stallman
2007-10-31  3:35                                                                 ` remove support for Sun windows (was Re: isearch multiple buffers) Dan Nicolaescu
2007-10-31 23:57                                                                   ` Richard Stallman
2007-11-01  3:09                                                                     ` Dan Nicolaescu
2007-11-01  7:44                                                                 ` isearch multiple buffers Jan Djärv
2007-11-09  8:26                                                             ` List of platforms to delete (was: Re: isearch multiple buffers) Dan Nicolaescu
2007-10-25  6:47                                               ` isearch multiple buffers martin rudalics
2007-10-25  7:02                                                 ` Miles Bader
2007-10-25  8:26                                                   ` Juanma Barranquero
2007-10-25 11:08                                                     ` David Kastrup
2007-10-25 11:19                                                       ` Juanma Barranquero
2007-10-25 14:03                                                         ` David Kastrup
2007-10-25 14:08                                                           ` Juanma Barranquero
2007-10-25 20:54                                                         ` Juri Linkov
2007-10-25 21:56                                                           ` Juanma Barranquero
2007-10-25  7:45                                                 ` 8.3 filename restriction Kenichi Handa
2007-10-25 10:53                                                   ` tomas
2007-10-25 22:01                                                     ` Eli Zaretskii
2007-10-25 12:36                                                   ` martin rudalics
2007-10-25 22:11                                                     ` Eli Zaretskii
2007-10-25 21:48                                                   ` Eli Zaretskii
2007-10-26  3:48                                                   ` Richard Stallman
2007-10-22  0:33                           ` isearch multiple buffers Juri Linkov
2007-10-22 23:48                             ` Juri Linkov
2007-10-23  7:12                         ` Richard Stallman
2007-10-23  7:12                         ` Richard Stallman
2007-10-23 23:59                           ` Juri Linkov
2007-10-24  0:32                             ` Drew Adams
2007-10-24 16:31                               ` buffer order [was: isearch multiple buffers] Drew Adams
2007-10-25  0:47                                 ` buffer order Miles Bader
2007-10-24 21:33                               ` isearch multiple buffers Juri Linkov
2007-10-24 22:52                                 ` Drew Adams
2007-10-24  8:33                             ` Richard Stallman
2007-10-24 21:23                               ` Juri Linkov
2007-10-25  9:01                                 ` Richard Stallman
2007-10-25 20:57                                   ` Juri Linkov
2007-10-25 21:51                                     ` Drew Adams
2007-10-26 23:05                                       ` Juri Linkov
2007-10-27  0:01                                         ` Lennart Borgman (gmail)
2007-10-27  0:19                                           ` Drew Adams
2007-10-27  7:22                                             ` Lennart Borgman (gmail)
2007-10-27 16:20                                               ` Drew Adams
2007-10-27 22:54                                                 ` Juri Linkov
2007-10-27 23:37                                                   ` Drew Adams
2007-10-28  1:31                                                     ` Juri Linkov
2007-10-28 13:50                                                   ` Richard Stallman
2007-10-28 15:03                                                     ` Juri Linkov
2007-10-29  9:21                                                       ` Richard Stallman
2007-10-27 23:41                                               ` Richard Stallman
2007-10-28  0:18                                                 ` Drew Adams
2007-10-28  1:32                                                   ` Juri Linkov
2007-10-28  3:22                                                     ` Drew Adams
2007-10-28  4:14                                                       ` Luc Teirlinck
2007-10-28 10:52                                                         ` Juri Linkov
2007-10-27  0:13                                         ` Drew Adams
2007-10-27  2:10                                           ` Miles Bader
2007-10-27  2:39                                             ` Drew Adams
2007-10-27  3:46                                               ` Miles Bader
2007-10-27  4:29                                                 ` Drew Adams
2007-10-27 23:27                                           ` Juri Linkov
2007-10-28  0:10                                             ` Drew Adams
2007-10-28  1:33                                               ` Juri Linkov
2007-10-27 13:58                                         ` Richard Stallman
2007-10-27 16:20                                           ` Drew Adams
2007-10-27 22:47                                             ` Juri Linkov
2007-10-27 23:26                                               ` Drew Adams
2007-10-28 13:51                                             ` Richard Stallman
2007-10-25  9:01                                 ` Richard Stallman
2007-10-09 20:03     ` Richard Stallman
2008-07-20  0:40 ` Juri Linkov
2008-07-20  4:11   ` Miles Bader
2008-07-20 19:34     ` Juri Linkov
2008-07-20 17:21   ` Richard M Stallman
2008-07-20 19:38     ` Juri Linkov
2008-07-21  3:29       ` Richard M Stallman
2008-07-21  9:07         ` Juri Linkov
2008-07-21  6:53       ` Thomas Link
2008-07-21  9:09         ` Juri Linkov
2008-07-21 10:42           ` Thomas Link

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lk9ylkbb.fsf@jurta.org \
    --to=juri@jurta.org \
    --cc=emacs-devel@gnu.org \
    --cc=rms@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.