all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Tom Tromey <tromey@redhat.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Emacs Hackers <emacs-devel@gnu.org>
Subject: Re: Patch to make VC annotate async
Date: Sun, 24 Jun 2007 15:32:00 -0600	[thread overview]
Message-ID: <m33b0h11kf.fsf@fleche.redhat.com> (raw)
In-Reply-To: <jwvfy4hw3s4.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Sun\, 24 Jun 2007 15\:33\:51 -0400")

>>>>> "Stefan" == Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> * vc.el (vc-annotate-display-select): Don't pop to buffer if one
>> is specified.
>> (vc-annotate): Run vc-annotate-display-select via vc-exec-after.

Stefan> Oh, so you don't even add the coloring until after the whole data
Stefan> was received.  Hmmm...

Yes.  This seemed like the simplest change, and after trying it a bit
I felt that it didn't make the user interface unacceptably odd.  The
weirdest bit is when point moves, but that is nice once you adjust to
it.

I also experimented a bit with how the buffer is displayed.  In
particular I tried making it so that the buffer is displayed only
after the contents are fontified.  I didn't like this since it means
the buffer is hidden while I do other tasks; popping it immediately is
less intrusive -- when the buffer is initially hidden I found that I
could sometimes context switch and forget that I had asked for the
annotation.

Also, in my various tests, I find that the buffer contents actually
show up reasonably quickly.  The slowdown with svn seems to come while
computing the text to send; once sent it seems to arrive quickly
enough that I don't notice the contents not being fontified.

>> * vc-cvs.el (vc-cvs-annotate-output): New variable.
>> (vc-cvs-annotate-process-filter): New function.
>> (vc-cvs-annotate-command): Run command async.  Use
>> vc-cvs-annotate-process-filter.

Stefan> I don't understand the prupose of
Stefan> vc-cvs-annotate-process-filter.  In my implementation I
Stefan> haven't needed any change to vc-cvs.el other than passing the
Stefan> `async' flag to vc-do-command.

The CVS annotator strips some text from the front of the buffer.  I
chose this approach since it means the user will not see the text
being stripped.  But, since the text does show up so quickly, and
since the code would be simpler, I could change this to a simple
vc-exec-after if you like.

Tom

  reply	other threads:[~2007-06-24 21:32 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-24  2:32 Patch to make VC annotate async Tom Tromey
2007-06-24 17:35 ` Richard Stallman
2007-06-24 18:05   ` Tom Tromey
2007-06-24 23:47     ` Richard Stallman
2007-06-24 19:33 ` Stefan Monnier
2007-06-24 21:32   ` Tom Tromey [this message]
2007-06-25  1:34     ` Stefan Monnier
2007-06-25 15:24       ` Tom Tromey
2007-06-25 16:54         ` Stefan Monnier
2007-06-25 17:53           ` Tom Tromey
2007-06-26 17:48       ` Stefan Monnier
2007-07-07 21:06 ` Stefan Monnier
2007-07-09 15:12   ` Tom Tromey
2007-07-09 19:09     ` David Kastrup
2007-07-11 16:02       ` Tom Tromey
2007-07-12  3:15         ` Stefan Monnier

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m33b0h11kf.fsf@fleche.redhat.com \
    --to=tromey@redhat.com \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.