emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Ido org-refile results in misfiling


From: Samuel Wales
Subject: Re: [O] Ido org-refile results in misfiling
Date: Wed, 17 Jul 2013 16:31:33 -0700

I'd like to bump this bug as I have a minimal test case for it now.

Save the whole thing to one file, and the subtree labeled "test case"
to another file.

*** bad refile example 1                                             :refile:
***** save test case to a file, and make it accessible to ido refiling
with flex matching
***** don't save these instructions to the file because they will interfere :)
***** refile this entry to the entry labeled 3 by typing 3
***** now try to refile this entry to the entry labeled 2 by typing 2
***** notice how the default provided is 3.  this is the bug.
it is of course ok that the default is 3 /before/ you
type 2.  that is not a bug.

the bug is that the default is 3 /after/ you type 2.
***** test case
******* i want this 2                                                :refile:
********* i get this 3                                               :refile:

The bug is explained in more detail below.

Thanks.

Samuel

On 5/31/12, Samuel Wales <address@hidden> wrote:
> Ido and org-refile are a superb combination that enhances
> Org significantly.  It is a killer feature IMO.
>
> However, in my usage there is a substantial risk of
> misfiling:
>
>   1) If I start from a fresh Emacs, "myorg" is sufficient to
>      select "computer/emacs/org/myorg/".  This is good.
>
>   2) If I refile something to
>      "computer/emacs/org/myorg/strategy and examples/various
>      todo kw and maybe some tags/", "various" is enough to
>      select it.  Note that this is below "myorg".  Also good.
>
>   3) (Just as an aside, if I then refile something else to
>      the same entry, I don't even need to enter "various".
>      It is the default.  A nice feature.)
>
>   4) Now suppose I want to refile something to "myorg".  I
>      enter "myorg" but I get "various".
>
> Detail on this subtle issue is below:
>
> ===
>
> My expectation is that if "myorg" selects "myorg" once, it
> should always do so no matter what my refile history is.
> This expectation is violated.
>
> It violates a sort of referential transparency.  The same
> narrowing inputs should produce the same narrowed outputs
> (in my expectation at least).
>
> I suspect that the reason for the unexpected behavior is related (in
> some way) to
> the defaulting in 3, which is useful.  However, the false defaulting in 4
> is
> NOT useful in any obvious way.
>
> ===
>
> Proposed solution:
>
> I think that as soon as the user starts selecting something,
> the default should be discarded.
>
> ===
>
> With my expectation, it is never necessary to check the
> offered olpaths except as a confirmation.
>
> With the current behavior, checking is always necessary
> because in edge cases, there will be a guaranteed misfile.
>
> Here is why: the only reason that default showed up at all
> is that the narrowing input /happened/ to match both
> headlines.  Otherwise the default would have been discarded.
> So it is an edge case that allowed the offer to misfile.  In
> other cases, the correct default would be provided.  If I
> wanted "various", RET would be sufficient.
>
> User checking is significantly more error-prone because one
> olpath is a substring of the other.
>
> Likewise, the requirement to navigate in the list is
> burdensome as 4 is never useful as far as I can tell.
>
> ===
>
> Is there any way to fix this?  I tried looking at ido
> customizations and got lost.
>
> If you can't reproduce witn your ido settings, I'll try to
> provide an MCE at some point.  Might take a while though.
>
> Thanks.
>
> Samuel
>
> --
> The Kafka Pandemic: http://thekafkapandemic.blogspot.com
>


-- 
The Kafka Pandemic: http://thekafkapandemic.blogspot.com

The disease DOES progress.  MANY people have died from it.  ANYBODY can get it.

Denmark: free Karina Hansen NOW.



reply via email to

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