emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Samuel Wales" <samologist@gmail.com>
To: Carsten Dominik <dominik@science.uva.nl>
Cc: emacs-orgmode@gnu.org
Subject: Re: ido slow for outline path completion
Date: Thu, 18 Dec 2008 16:57:39 -0700	[thread overview]
Message-ID: <20524da70812181557m79252c30hc941fe5965f917e8@mail.gmail.com> (raw)
In-Reply-To: <67E6FD56-F95F-4EEB-8BC3-4ED566B2ECAB@uva.nl>

Hi Carsten,

On Mon, Dec 15, 2008 at 02:36, Carsten Dominik <dominik@science.uva.nl> wrote:
> 1. Compile Org!  Are you using byte-compiled files?
>    In a case like this, the differences may be significant.

Always!  :)

> 4. Create the list of headings with full outline path
>    in a single path of the file, similar to the tags matcher.
>    This would avoid the N^2 operation I discussed above.

Single pass?  Very nice.

> There is also a new variable `org-goto-max-level' with
> a default of 5.

Excellent.  Might also be useful to unify the syntax for
org-goto, org-refile, remember.

> This should be *a lot* faster now.  Thanks for the report!

Almost instantaneous in many cases.

However, when I do org-refile as full path (not basenames),
it sometimes takes 45 seconds.

I haven't narrowed it down yet.  Emacs just freezes.

Every character I type from that point on takes another 45
seconds or so.  Deletes also take that long until I get back
to the place where it was fast.  At that point it is fast

The difference from before is that before, it occurred
before the minibuffer showed the candidates, while now it
occurs in the middle of entering the selection string.

Discontiguity might something to do with it -- sometimes it
happens when the character typed is different from the next
char in the target.  Maybe the candidate list needs lots of
searching in that case.  Maybe it is starting from the
beginning to match against the path?

I have not noticed this happening when I use basenames in
org-refile ido.  This leads me to conjecture that it might
be the size of the full paths.  Maybe too much stuff for the
ido flex matcher to consider.  uniquify-style disambiguation
might help by reducing the number of characters.

It might or might not have something to do with typing a
space that exists next in the target -- or not typing the
same.  Another possible hint is that sometimes, typing a
space inserts a slash.  Not sure why.

As I said, I have not narrowed down the exact cases.  If you
have a priori ideas, please let me know and I will try them.

Thank you very much.

Myalgic encephalomyelitis denialists are knowingly causing further
suffering and death by opposing biomedical research on this serious
infectious disease.  Do you care about the world?

  reply	other threads:[~2008-12-18 23:57 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-12 20:04 ido slow for outline path completion Samuel Wales
2008-12-15  9:36 ` Carsten Dominik
2008-12-18 23:57   ` Samuel Wales [this message]
2008-12-19  8:39     ` Carsten Dominik
2008-12-19 18:04       ` Samuel Wales
2008-12-19 22:32         ` Samuel Wales
2008-12-21 11:49           ` Carsten Dominik
2008-12-21 11:49     ` Carsten Dominik
2008-12-21 21:24       ` Samuel Wales
2008-12-22  8:30         ` Carsten Dominik
2008-12-23 19:40           ` Samuel Wales

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:

  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=20524da70812181557m79252c30hc941fe5965f917e8@mail.gmail.com \
    --to=samologist@gmail.com \
    --cc=dominik@science.uva.nl \
    --cc=emacs-orgmode@gnu.org \


* 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


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).