From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Wales Subject: Ido org-refile results in misfiling Date: Thu, 31 May 2012 19:51:36 -0700 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([208.118.235.92]:53160) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SaHxl-0002RM-1v for emacs-orgmode@gnu.org; Thu, 31 May 2012 22:51:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SaHxi-00032U-Te for emacs-orgmode@gnu.org; Thu, 31 May 2012 22:51:40 -0400 Received: from mail-ob0-f169.google.com ([209.85.214.169]:46937) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SaHxi-00032P-LZ for emacs-orgmode@gnu.org; Thu, 31 May 2012 22:51:38 -0400 Received: by obbwd18 with SMTP id wd18so2682919obb.0 for ; Thu, 31 May 2012 19:51:36 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org 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