all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Werner LEMBERG <wl@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: hiding lines
Date: Thu, 2 Apr 2009 19:30:50 +0000	[thread overview]
Message-ID: <20090402193050.GA10678@muc.de> (raw)
In-Reply-To: <20090402.085201.106432638.wl@gnu.org>

Hi, Werner,

On Thu, Apr 02, 2009 at 08:52:01AM +0200, Werner LEMBERG wrote:

> Folks,


> I would like to hide lines in a buffer which satisfy a regexp --
> either the lines get completely hidden (or perhaps indicated with
> `...' as in the outline mode), or a search-and-replace function
> doesn't match them.

> Does Emacs have such a thing?  A lookup in the docs doesn't show
> anything relevant.  This would be a very convenient function for
> editing lists.

The following makes the current region invisible and intangible.  It
doesn't, as yet, make it visible and tangible again very well.  It's not
quite what you're asking for, but you can likely use it as the engine
end of what you want.

    (defun make-region-invisible (beg end &optional arg)
      "Make the current region invisible and intangible.
    With a prefix arg, make it visible again.  With an arg of 0,
    make all such regions visible."
      (interactive "r\nP")
      (let (ov ovs)
        (cond
         ((eq arg 0)
          (setq ovs (overlays-in (point-min) (point-max)))
          (mapc (lambda (o)
                  (when (overlay-get o 'acm-invisible)
                    (delete-overlay o)))
                ovs))
         ((equal arg '(4))
          (setq ovs (overlays-at (point)))
          (mapc (lambda (o)
                  (when (overlay-get o 'acm-invisible)
                    (delete-overlay o)))
                ovs))
         (t
          (setq ov (make-overlay beg end))
          (overlay-put ov 'acm-invisible t)
          (overlay-put ov 'invisible t)
          (overlay-put ov 'intangible t)))))
    (global-set-key "\C-cz" 'make-region-invisible)


>     Werner

-- 
Alan Mackenzie (Nuremberg, Germany).




  reply	other threads:[~2009-04-02 19:30 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-02  6:52 hiding lines Werner LEMBERG
2009-04-02 19:30 ` Alan Mackenzie [this message]
2009-04-03  0:39   ` Stefan Monnier
2009-04-03 12:26     ` Alan Mackenzie
2009-04-03 13:22       ` Stefan Monnier
2009-04-06  6:11         ` Werner LEMBERG
2009-04-06 13:10           ` Stefan Monnier
2009-04-06 16:20             ` Werner LEMBERG
2009-04-07  0:50               ` Stefan Monnier
2009-04-07  5:26                 ` Werner LEMBERG
2009-04-10 19:54           ` Werner LEMBERG
2009-04-10 20:42             ` Andreas Schwab
2009-04-10 21:50               ` Werner LEMBERG
2009-04-10 22:42                 ` `make-overlay' very slow (was: hiding lines) Werner LEMBERG
2009-04-10 23:36                   ` `make-overlay' very slow Stefan Monnier
2009-04-11  6:11                     ` Werner LEMBERG
2009-04-11  7:34                       ` Lennart Borgman
2009-04-11  7:45                         ` Werner LEMBERG
2009-04-11  7:46                           ` Lennart Borgman
2009-04-11  8:33                             ` Werner LEMBERG
2009-04-11  8:55                       ` Eli Zaretskii
2009-04-11 12:51                       ` Stefan Monnier
2009-04-14 12:03                         ` Kenichi Handa
2009-04-14 13:03                           ` Stefan Monnier
2009-04-14 21:15                             ` Richard M Stallman
2009-04-15  3:56                             ` Kenichi Handa
2009-04-16 15:02                           ` clone-indirect-buffer-hook should be make-indirect-buffer-hook klaus.berndl
2009-04-03  5:44   ` hiding lines Andreas Roehler

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=20090402193050.GA10678@muc.de \
    --to=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    --cc=wl@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.