From mboxrd@z Thu Jan 1 00:00:00 1970 From: storm@cua.dk (Kim F. Storm) Subject: Re: patch to outline.el concerning isearch Date: Sat, 16 Dec 2006 02:03:21 +0100 Message-ID: References: <87bqm7yvyw.fsf@earthlink.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: In-Reply-To: <87bqm7yvyw.fsf@earthlink.net> (John J. Foerch's message of "Wed\, 13 Dec 2006 22\:53\:11 -0500") List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org To: John J Foerch Cc: emacs-orgmode@gnu.org, emacs-devel@gnu.org List-Id: emacs-orgmode.gnu.org John J Foerch writes: > Hello, > > I want to implement a particular feature in org-mode that depends upon some > functionality being added to outline-mode. (org-mode is derived from > outline-mode.) The feature concerns display of ancestor and sibling headings > when an isearch has come to successful completion in a hidden part of the > file. The function whose job it is to decide what to display when an isearch > has completed is called `outline-isearch-open-invisible'. Currently, it > simply calls `(show-entry)'. The following patch changes that function, and > adds a new variable, to allow derived modes or motivated users to implement > alternate behavior. The default behavior remains the same, but can more > easily be reprogrammed by a derived mode. Hi John, Your request seems reasonable, but I think your proposed change is a little more complex than necessary. Does the following patch provide what you need? *** outline.el 04 Dec 2006 09:41:09 +0100 1.24 --- outline.el 16 Dec 2006 02:00:21 +0100 *************** *** 690,695 **** --- 690,700 ---- (goto-char beg))) + (defvar outline-isearch-open-invisible-function nil + "Function called if `isearch' finishes in an invisible overlay. + The function is called with the overlay as its only argument. + If nil, `show-entry' is called to reveal the invisible text.") + (put 'outline 'reveal-toggle-invisible 'outline-reveal-toggle-invisible) (defun outline-flag-region (from to flag) "Hide or show lines from FROM to TO, according to FLAG. *************** *** 698,704 **** (when flag (let ((o (make-overlay from to))) (overlay-put o 'invisible 'outline) ! (overlay-put o 'isearch-open-invisible 'outline-isearch-open-invisible))) ;; Seems only used by lazy-lock. I.e. obsolete. (run-hooks 'outline-view-change-hook)) --- 703,711 ---- (when flag (let ((o (make-overlay from to))) (overlay-put o 'invisible 'outline) ! (overlay-put o 'isearch-open-invisible ! (or outline-isearch-open-invisible-function ! 'outline-isearch-open-invisible)))) ;; Seems only used by lazy-lock. I.e. obsolete. (run-hooks 'outline-view-change-hook)) -- Kim F. Storm http://www.cua.dk