From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Cycling visibility of blocks Date: Tue, 26 May 2009 19:26:27 +0200 Message-ID: <8D2C1863-8174-47C2-A195-3887FB10374F@gmail.com> References: <87skiuryr2.fsf@selenimh.orion.org> <87ljomnfni.fsf@kassiopeya.MSHEIMNETZ> <04195B46-5D81-4E64-8315-CD2085E49357@gmail.com> <87y6slmteu.fsf@kassiopeya.MSHEIMNETZ> <87ljokncfd.fsf@kassiopeya.MSHEIMNETZ> Mime-Version: 1.0 (Apple Message framework v935.3) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1M90Q8-0008Iz-LL for emacs-orgmode@gnu.org; Tue, 26 May 2009 13:26:36 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1M90Q5-0008Hh-0c for emacs-orgmode@gnu.org; Tue, 26 May 2009 13:26:36 -0400 Received: from [199.232.76.173] (port=47155 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M90Q4-0008HX-Ky for emacs-orgmode@gnu.org; Tue, 26 May 2009 13:26:32 -0400 Received: from mail-ew0-f210.google.com ([209.85.219.210]:57113) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1M90Q4-0007Z7-1v for emacs-orgmode@gnu.org; Tue, 26 May 2009 13:26:32 -0400 Received: by ewy6 with SMTP id 6so4126674ewy.42 for ; Tue, 26 May 2009 10:26:31 -0700 (PDT) In-Reply-To: <87ljokncfd.fsf@kassiopeya.MSHEIMNETZ> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Sebastian Rose Cc: emacs-orgmode@gnu.org On May 25, 2009, at 10:40 PM, Sebastian Rose wrote: > "Eric Schulte" writes: >> I've applied a slightly changed version of your regexp, and this is >> now >> working for all block types (the resulting file is attached). Where >> could this file be saved? The contrib directory seems like >> overkill for >> such a small piece of functionality maybe I should post it up >> somewhere >> on worg? > > > Hmm - why don't you juste start a `Snippets' section? I don't mind > Worg > to grow. > Didn't you see http://wiki.github.com/SebastianRose/org-search.php? > Not > doing very much yet, but it's under way :) > > > Another good place would be inside Org-mode's core IMHO. I would be happy to integrate this into the core. Eric, you agree? - Carsten > > > Sebastian > > >> ;;; org-block-hide.el --- hide blocks in org-mode files >> >> (defvar org-block-hide-src-block-regexp >> "#\\+begin_\\([^ ]+\\) ?\\([ \t]+\\([^\n]+\\)\\)?\n\\([^\000]+?\\)# >> \\+end_\\1") >> >> (defun org-block-hide-src-block-cycle-maybe () >> (let ((case-fold-search t)) >> (if (save-excursion >> (beginning-of-line 1) >> (looking-at org-block-hide-src-block-regexp)) >> (progn (call-interactively 'org-block-hide-src-block-cycle) >> t) ;; to signal that we took action >> nil))) ;; to signal that we did not >> >> (defun org-block-hide-src-block-cycle () >> "Cycle the visibility of the current block" >> (interactive) >> ;; should really do this once in an (org-mode hook) >> (add-to-invisibility-spec '(org-block-hide . t)) >> (message "trying out source block") >> (save-excursion >> (beginning-of-line) >> (if (re-search-forward org-block-hide-src-block-regexp nil t) >> (let ((start (- (match-beginning 4) 1)) ;; beginning of body >> (end (match-end 0))) ;; end of entire body >> (if (memq t (mapcar (lambda (overlay) >> (eq (overlay-get overlay 'invisible) >> 'org-block-hide)) >> (overlays-at start))) >> (remove-overlays start end 'invisible 'org-block-hide) >> (overlay-put (make-overlay start end) 'invisible 'org- >> block-hide))) >> (error "not looking at a source block")))) >> >> ;; org-tab-after-check-for-cycling-hook >> (add-hook 'org-tab-first-hook 'org-block-hide-src-block-cycle-maybe) >> >> ;;; org-block-hide.el ends here > > -- > Sebastian Rose, EMMA STIL - mediendesign, Niemeyerstr.6, 30449 > Hannover > Tel.: +49 (0)511 - 36 58 472 > Fax: +49 (0)1805 - 233633 - 11044 > mobil: +49 (0)173 - 83 93 417 > Email: s.rose@emma-stil.de, sebastian_rose@gmx.de > Http: www.emma-stil.de