Subject: Re: More precise tag following

From: Theodore Tso <[email-masked]>
Date: Sat, 27 Jan 2007 21:39:58 -0500

On Sat, Jan 27, 2007 at 06:52:38PM -0500, Jeff King wrote:
> But it's still pretty ugly. I'm not inclined to hack on it much more --
> IMHO, a nice curses interface like tig would be much more sensible.

For emacs users, it would even be better to tie it into emacs.  That
way you're already at the line number looking at the source code when
you start wondering, "who the f*ck created this mess?".  The way I'd
design it would to have emacs split the window vertically, and place
the blame information in a buffer whose scrolling was synchronized
with the main window.  

One of the things that I noticed myself doing (and I'm guessing many
other people would do it as well), is that you have a tendency to wait
until the attribution information has started filling in before you
start scrolling to the part of the code you were interested in --- and
since the beginning of the fle often hasn't changed much until the
earliest beginnings of the project, that can be quite a while.  And of
course, scrolling to the right part of the file is a pain.  So
building it into the editor is not only convenient, but it avoids the
psychological effects that could make it seem slow because how long it
takes to fill the attribution for these first bits:

/*
 * Copyright (C) 1991, 1992 Linus Torvalds
 * Copyright (C) 1994,      Karl Keyte: Added support for disk statistics
 * Elevator latency, (C) 2000  Andrea Arcangeli <[email-masked]> SuSE
 * Queue request tables / lock, selectable elevator, Jens Axboe <[email-masked]>
 * kernel-doc documentation started by NeilBrown <[email-masked]> -  July2000
 * bio rewrite, highmem i/o, etc, Jens Axboe <[email-masked]> - may 2001
 */

Anyway, this should be relatively easily for emacs, and for eclipse
(although I don't think anyone is using eclipse to do Kernel hacking,
is there?).  I have no idea how you would hack this into Vim, other
than passing the line number into the GUI so it can open right into
the function that the developer was looking at.

						- Ted