emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: org-pop-mode


From: Mark E. Shoulson
Subject: Re: org-pop-mode
Date: Wed, 18 Mar 2020 16:05:53 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1

On 3/18/20 3:15 PM, Adam Porter wrote:
"Mark E. Shoulson" <address@hidden> writes:

This is something I've wanted for years in org-mode, but which in some
ways could actually be _offensive_ to its ideals.  If you're an
outline purist, look away.

...

So, I present a pre-alpha version,
https://gist.github.com/clsn/09ac4b098b6ad7366bb5e0bc88882d5f of
org-pop-mode.  To "pop" back up, create a headline at the level you're
popping back to, and give it a tag of "contd", and the headline text
should not be something important.  Instructions and explanations are
in the comments of the file (the part about installing from MELPA is a
lie, though).

Any feedback?
Hi Mark,

Indeed, this is something that is frequently asked about.  I probably
wouldn't use it myself, but it looks like you've done a good job on it.
Here is some feedback:

1.  I'd suggest a more descriptive name, especially if you plan to
publish it to MELPA.  org-pop doesn't seem to convey anything about what
it does.  :)

Heh; fair enough.  The filename originally was "org-level-end.el", I think; I started using the catchier "org-pop" because... well, it was catchier.  It made sense in my mind, in the "push"/"pop" sense used with stacks in programming, that you "push" to a deeper level and this library would allow you to "pop" back up to a higher one.  I'll see if I can think of something better, thanks.

2.  In the code, I saw you comment about cl-flet, and I see you using
fset and unwind-protect in the org-pop-with-continuations macro.
Instead, use cl-letf with symbol-function, like:

   (cl-letf* (((symbol-function 'foo)
               #'my-foo)
              ((symbol-function 'bar)
               (lambda ()
                 ...)))
     BODY)

See also Nic Ferrier's package, noflet.

I'll take a look, thanks.  It's questionable whether I really should even be messing about with that macro anyway.  I must have removed the comments, but I had a whole thing there about how I had been trying with cl-letf and/or cl-flet and it didn't work. Thing is, cl-flet, according to the docs, (info:cl#Function Bindings) is strictly *lexical* binding, which is not going to cut it.  cl-letf might be different; the docs are different about it, but I am pretty sure I tried it and it didn't work, or didn't work "enough of the time."  But maybe I had it wrong, and maybe noflet will succeed.

Thanks!

~mark





reply via email to

[Prev in Thread] Current Thread [Next in Thread]