emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* save folded state
@ 2015-01-27  0:54 John Kitchin
  2015-01-27 23:26 ` Phillip Lord
  0 siblings, 1 reply; 4+ messages in thread
From: John Kitchin @ 2015-01-27  0:54 UTC (permalink / raw)
  To: Org Mode List

I am trying to map over a buffer with headlines in various states of
folded, and get context around certain elements. I find I need to fully
expand the buffer to get the context in the way I am currently doing it
(e.g. getting the lines around the element), but I would like to put the
buffer back to the way it was when I am finished. This is not done with
the usual macros like save-excursion, save-restriction, etc... Is there
a way to do this other than a temp buffer?

thanks,

--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: save folded state
  2015-01-27  0:54 save folded state John Kitchin
@ 2015-01-27 23:26 ` Phillip Lord
  2015-01-28  0:27   ` John Kitchin
  0 siblings, 1 reply; 4+ messages in thread
From: Phillip Lord @ 2015-01-27 23:26 UTC (permalink / raw)
  To: John Kitchin; +Cc: Org Mode List


You mean programmatically? Is folding not just implemented with
invisible overlays? If so, why do you need to change this to get
context?

You can try setting buffer-invisibility-spec temporarily. For example,
run this function in a folded org-mode buffer.

(defun temp ()
  (interactive)
  (message "invisibility spec stuff")
  (let ((buffer-invisibility-spec '()))
    (message "sitting")
    (sit-for 5))
  (message "done"))

It unfolds everything but having the display engine ignore all
overlays/text properties.

If you want to do this interactively, and you will forgive the plug, my
own package, lentic, would enable you to do this. You can open up a
second buffer which has the same text as the first, but could be folded
completely independently of the original. At the moment, you only get
one copy, but I'll expand that to any number at some point. When you're
finished kill the copy, and all the changed folding goes with it.

Phil


John Kitchin <johnrkitchin@gmail.com> writes:

> I am trying to map over a buffer with headlines in various states of
> folded, and get context around certain elements. I find I need to fully
> expand the buffer to get the context in the way I am currently doing it
> (e.g. getting the lines around the element), but I would like to put the
> buffer back to the way it was when I am finished. This is not done with
> the usual macros like save-excursion, save-restriction, etc... Is there
> a way to do this other than a temp buffer?
>
> thanks,
>
> --
> Professor John Kitchin
> Doherty Hall A207F
> Department of Chemical Engineering
> Carnegie Mellon University
> Pittsburgh, PA 15213
> 412-268-7803
> @johnkitchin
> http://kitchingroup.cheme.cmu.edu

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: save folded state
  2015-01-27 23:26 ` Phillip Lord
@ 2015-01-28  0:27   ` John Kitchin
  2015-02-02 12:50     ` Phillip Lord
  0 siblings, 1 reply; 4+ messages in thread
From: John Kitchin @ 2015-01-28  0:27 UTC (permalink / raw)
  To: Phillip Lord; +Cc: Org Mode List, John Kitchin

yes, I meant programatically. I was having some issue in selecting
contex using commands that grab what is visible. So for things inside a
folded section it was not grabbing the right context.

I solved it by doing something similar to what you describe, i.e. a
tempbuffer.

lentic looks pretty interesting.

Phillip Lord writes:

> You mean programmatically? Is folding not just implemented with
> invisible overlays? If so, why do you need to change this to get
> context?
>
> You can try setting buffer-invisibility-spec temporarily. For example,
> run this function in a folded org-mode buffer.
>
> (defun temp ()
>   (interactive)
>   (message "invisibility spec stuff")
>   (let ((buffer-invisibility-spec '()))
>     (message "sitting")
>     (sit-for 5))
>   (message "done"))
>
> It unfolds everything but having the display engine ignore all
> overlays/text properties.
>
> If you want to do this interactively, and you will forgive the plug, my
> own package, lentic, would enable you to do this. You can open up a
> second buffer which has the same text as the first, but could be folded
> completely independently of the original. At the moment, you only get
> one copy, but I'll expand that to any number at some point. When you're
> finished kill the copy, and all the changed folding goes with it.
>
> Phil
>
>
> John Kitchin <johnrkitchin@gmail.com> writes:
>
>> I am trying to map over a buffer with headlines in various states of
>> folded, and get context around certain elements. I find I need to fully
>> expand the buffer to get the context in the way I am currently doing it
>> (e.g. getting the lines around the element), but I would like to put the
>> buffer back to the way it was when I am finished. This is not done with
>> the usual macros like save-excursion, save-restriction, etc... Is there
>> a way to do this other than a temp buffer?
>>
>> thanks,
>>
>> --
>> Professor John Kitchin
>> Doherty Hall A207F
>> Department of Chemical Engineering
>> Carnegie Mellon University
>> Pittsburgh, PA 15213
>> 412-268-7803
>> @johnkitchin
>> http://kitchingroup.cheme.cmu.edu

--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: save folded state
  2015-01-28  0:27   ` John Kitchin
@ 2015-02-02 12:50     ` Phillip Lord
  0 siblings, 0 replies; 4+ messages in thread
From: Phillip Lord @ 2015-02-02 12:50 UTC (permalink / raw)
  To: John Kitchin; +Cc: Org Mode List


Worth trying the buffer-invisibility-spec solution. I'd be interested to
know if it works or not. Although I wonder whether the commands that you
are using really should be obeying visibility context.

Phil

John Kitchin <johnrkitchin@gmail.com> writes:
> yes, I meant programatically. I was having some issue in selecting
> contex using commands that grab what is visible. So for things inside a
> folded section it was not grabbing the right context.
>
> I solved it by doing something similar to what you describe, i.e. a
> tempbuffer.
>
> lentic looks pretty interesting.
>
> Phillip Lord writes:
>
>> You mean programmatically? Is folding not just implemented with
>> invisible overlays? If so, why do you need to change this to get
>> context?
>>
>> You can try setting buffer-invisibility-spec temporarily. For example,
>> run this function in a folded org-mode buffer.
>>
>> (defun temp ()
>>   (interactive)
>>   (message "invisibility spec stuff")
>>   (let ((buffer-invisibility-spec '()))
>>     (message "sitting")
>>     (sit-for 5))
>>   (message "done"))
>>
>> It unfolds everything but having the display engine ignore all
>> overlays/text properties.
>>
>> If you want to do this interactively, and you will forgive the plug, my
>> own package, lentic, would enable you to do this. You can open up a
>> second buffer which has the same text as the first, but could be folded
>> completely independently of the original. At the moment, you only get
>> one copy, but I'll expand that to any number at some point. When you're
>> finished kill the copy, and all the changed folding goes with it.
>>
>> Phil
>>
>>
>> John Kitchin <johnrkitchin@gmail.com> writes:
>>
>>> I am trying to map over a buffer with headlines in various states of
>>> folded, and get context around certain elements. I find I need to fully
>>> expand the buffer to get the context in the way I am currently doing it
>>> (e.g. getting the lines around the element), but I would like to put the
>>> buffer back to the way it was when I am finished. This is not done with
>>> the usual macros like save-excursion, save-restriction, etc... Is there
>>> a way to do this other than a temp buffer?
>>>
>>> thanks,
>>>
>>> --
>>> Professor John Kitchin
>>> Doherty Hall A207F
>>> Department of Chemical Engineering
>>> Carnegie Mellon University
>>> Pittsburgh, PA 15213
>>> 412-268-7803
>>> @johnkitchin
>>> http://kitchingroup.cheme.cmu.edu
>
> --
> Professor John Kitchin
> Doherty Hall A207F
> Department of Chemical Engineering
> Carnegie Mellon University
> Pittsburgh, PA 15213
> 412-268-7803
> @johnkitchin
> http://kitchingroup.cheme.cmu.edu
>
>

-- 
Phillip Lord,                           Phone: +44 (0) 191 208 7827
Lecturer in Bioinformatics,             Email: phillip.lord@newcastle.ac.uk
School of Computing Science,            http://homepages.cs.ncl.ac.uk/phillip.lord
Room 914 Claremont Tower,               skype: russet_apples
Newcastle University,                   twitter: phillord
NE1 7RU                                 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-02-02 12:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-27  0:54 save folded state John Kitchin
2015-01-27 23:26 ` Phillip Lord
2015-01-28  0:27   ` John Kitchin
2015-02-02 12:50     ` Phillip Lord

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).