From: Carsten Dominik <carsten.dominik@gmail.com>
To: Noorul Islam <noorul@noorul.com>
Cc: Richard Riley <rileyrg@googlemail.com>, emacs-orgmode@gnu.org
Subject: Re: capture initial "level" and refile of capture buffer
Date: Mon, 25 Oct 2010 09:11:20 +0200 [thread overview]
Message-ID: <4D2F89B4-6F6C-411D-B272-3FF3DAD80B23@gmail.com> (raw)
In-Reply-To: <AANLkTim4khW3tXmP0az0w_knV82FFdV=JGDbzKWcG7Ov@mail.gmail.com>
Hi Noorul, hi Richard,
On Oct 23, 2010, at 12:16 PM, Noorul Islam wrote:
> On Sat, Oct 23, 2010 at 2:12 PM, Noorul Islam <noorul@noorul.com>
> wrote:
>> On Fri, Oct 22, 2010 at 5:13 PM, Richard Riley <rileyrg@googlemail.com
>> > wrote:
>>>
>>> What determines the level of a new capture element? e.g I just
>>> created
>>> one and it started at "****".
>>>
>>> feature request : when I added some sub elements to a capture
>>> buffer e.g
>>>
>>> * my new capture
>>>
>>> ** sub point
>>>
>>> *** sub sub point 1
>>> *** sub sub point 2
>>>
>>> and hit C-c C-w to refile, it only refiled the sub element (where
>>> cursor
>>> was) and then lost the rest. I would like to suggest that refile
>>> from
>>> the capture buffer should refile the entire buffer and not only the
>>> "current nested org item". Or am I missing something in my setup?
>>
>> On my box I have this observation.
>>
>> If I have something like this in my capture buffer
>>
>> * TODO Test
>>
>> * my new capture
>>
>> ** sub point
>>
>> *** sub sub point 1
>> *** sub sub point 2
>>
>>
>> and if I press C-c C-w at the last line (*** sub sub point 2) and
>> refile it to refile.org then what I get in refile.org is this
>>
>>
>> * TODO Test
>>
>> * my new capture
>>
>> ** sub point
>>
>> *** sub sub point 1
>> * sub sub point 2
>>
>>
>> The last one's level got changed.
>> I have latest pull from git repo.
>>
>> Org-mode version 7.01trans (release_7.01h.833.g21ad0)
>> GNU Emacs 23.2.2 (i686-pc-linux-gnu)
>> of 2010-06-08 on sajida
>>
>
> Fix org-capture bug.
>
> * lisp/org.el (org-capture-refile): Consider entire temporary buffer
> for refiling.
> diff --git a/lisp/org-capture.el b/lisp/org-capture.el
> index 7915f7f..6c62114 100644
> --- a/lisp/org-capture.el
> +++ b/lisp/org-capture.el
> @@ -548,7 +548,7 @@ already gone."
> (unless (eq (org-capture-get :type 'local) 'entry)
> (error
> "Refiling from a capture buffer makes only sense for `entry'-
> type templates"))
> - (let ((pos (point))
> + (let ((pos (point-min))
> (base (buffer-base-buffer (current-buffer)))
> (org-refile-for-capture t))
> (org-capture-finalize)
This patch catures the problem and brings forward a correct idea.
But I believe we need to think a bit further. The current
implementation of C-c C-w as a way to finish capture works
as closely as possible to the standard refile mechanism.
I.e. the tree *where the cursor is at* will be refiled.
Your patch makes the cursor move back to beginning of the
accessible part of the buffer and refiles from there.
If the captured entry starts at this point, and if all
the narrowed section contains is a single tree, this
is a good solution. However, if we move away from having
refile work in the exact same way as normally, the
following questions arise:
1. Maybe the user has entered an empty line before the subtree.
In this case, the outline node *before* the captured tree
will now be refiled.
2. Maybe the user has widened the capture buffer. In this case
the code will now refile the first node in the buffer, possibly
very far from the current location of point. Or, it will
throw an error because the may not be an outline
node at point min.
3. Maybe the user has added several trees (siblings) into the
capture buffer. In this case, the refile will only
affect the first of those siblings.
So we have two solutions here:
Solution 1: Be aware that you are just calling refile, so
move the cursor to the appropriate place before
running the command.
Solution 2: Install two markers at the beginning and end of
the region to which the buffer has been narrowed,
and then select that entire region for refiling.
This is non-trivial, but probably can be made to
work.
In either case we will probably have to update the manual
to make things clearer.
- Carsten
next prev parent reply other threads:[~2010-10-25 8:08 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-22 11:43 capture initial "level" and refile of capture buffer Richard Riley
2010-10-23 8:42 ` Noorul Islam
2010-10-23 10:16 ` Noorul Islam
2010-10-23 10:34 ` Noorul Islam
2010-10-25 7:11 ` Carsten Dominik [this message]
2010-10-25 8:54 ` Noorul Islam
2010-10-25 9:11 ` Carsten Dominik
2010-12-12 8:39 ` Carsten Dominik
2010-10-25 11:34 ` Carsten Dominik
2010-10-26 8:37 ` Noorul Islam
2010-10-26 8:53 ` Carsten Dominik
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
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D2F89B4-6F6C-411D-B272-3FF3DAD80B23@gmail.com \
--to=carsten.dominik@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=noorul@noorul.com \
--cc=rileyrg@googlemail.com \
/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 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).