emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nicolas Goaziou <n.goaziou@gmail.com>
To: Carsten Dominik <carsten.dominik@gmail.com>
Cc: Org Mode List <emacs-orgmode@gnu.org>
Subject: Re: [dev] org-indent-mode patch
Date: Thu, 21 Jul 2011 17:14:55 +0200	[thread overview]
Message-ID: <87livrr7gw.fsf@gmail.com> (raw)
In-Reply-To: <67BE727C-BFCE-4862-9DCC-AFA4201F3DA2@gmail.com> (Carsten Dominik's message of "Mon, 14 Mar 2011 08:51:27 +0100")


Carsten Dominik <carsten.dominik@gmail.com> writes:

> On 13.3.2011, at 17:21, Nicolas wrote:
>> I'd like to submit the following org-indent-mode patch for testing.
>> It implements two things:
>> 1. It indents correctly text when using visual-line-mode;
>> 2. It removes the idle timer previous implementation was using, which
>>   means it won't refresh indentation more often than necessary.
>> Unfortunately, there is a price to pay:
>> 1. Initialization will be much longer for large Org files, but I've
>>   added a message to the user saying so.
>> 2. It is a bit slower, as the algorithm has more things to check.
>> Last point is obviously my main concern. Although not noticeable on my
>> not-so-recent laptop, I don't know how it behaves on old machines.

> Initial testing seems to show that this works well, very nice.
> The delay at the beginning is long, and it might be annoying
> when org pulls in a buffer just to look something up,
> without org-inhibit-startup scoped into the file loading.
> Maybe one could arrange for the initialization to happen just
> before the buffer is first *displayed* (I do not know if that
> is possible).
> Just one nitpicking:  The idle timer may force updating when
> not necessary - but using after-change-functions will update after
> each character inserted.  So in fact your code might be updating
> more often at least while typing - maybe not while looking at
> the buffer and jumping around.  I am not a fast typist, but maybe
> fast typists will notice significant delays, in particular
> while writing inside a very long section?

In order to circumvent the slow process at initialization, I've
implemented an asynchronous initialization. Thus, one can open the
buffer and start to write in it before initialization is complete. Once
it is done, everything else is synchronous again.

I think it is a good compromise. It needs testing though. Thus, if
anyone is interested, I'll gladly hear his feedback.

The branch is located at :

     git://github.com/ngz/org-mode-lists.git indent-patch-no-timer


Nicolas Goaziou

  parent reply	other threads:[~2011-07-21 15:20 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-13 16:21 [dev] org-indent-mode patch Nicolas
2011-03-14  7:51 ` Carsten Dominik
2011-03-19  6:33   ` Linus Arver
2011-07-21 15:14   ` Nicolas Goaziou [this message]
2011-08-18  8:38     ` Carsten Dominik
2011-08-18 10:19       ` Nicolas Goaziou
2011-08-18 10:26         ` Carsten Dominik
2011-08-18 12:02           ` Bernt Hansen
2011-08-18 12:55             ` Bastien
2011-08-18 14:00               ` Nicolas Goaziou
2011-08-18 16:47                 ` Bastien

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=87livrr7gw.fsf@gmail.com \
    --to=n.goaziou@gmail.com \
    --cc=carsten.dominik@gmail.com \
    --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).