Subject: bug#12953: Implement line highlighting (à la hl-line) in the display engine

From: Juanma Barranquero <[email-masked]>
Date: Wed, 21 Nov 2012 16:49:29 +0100

Package: emacs
Version: 24.2.50
Severity: wishlist
X-Debbugs-Cc: [email-masked]

---------- Forwarded message ----------
From: Eli Zaretskii <[email-masked]>
Date: Tue, Nov 20, 2012 at 9:47 PM
Subject: bug#12927: 24.2; global-hl-line-mode and
"scroll-conservatively=1000" take	jump	up-down the text when hold DOWN
key (in *info* buffer).
To: Oleksandr Gavenko <[email-masked]>
Cc: [email-masked]

> From: Oleksandr Gavenko <[email-masked]>
> Cc: [email-masked]
> Date: Tue, 20 Nov 2012 22:36:58 +0200
>
> > Should be fixed in revision 110927 on the emacs-24 branch.  Please
> > test.
>
> I don't familiar with bzr:
>
>   $ bzr up
>   $ bzr info -v
>   Repository checkout (format: 2a)
>   Location:
>     repository checkout root: .
>           checkout of branch: bzr://bzr.savannah.gnu.org/emacs/trunk/
>            shared repository: /home/user/devel/emacs/emacs-bzr

This is the trunk, not the emacs-24 branch.  I committed the fix to
the emacs-24 branch.  You can wait until the changes from the branch
are merged onto the trunk, and test then.  Or you can checkout the
branch, like so:

  $ cd /home/user/devel/emacs/emacs-bzr
  $ bzr branch bzr://bzr.savannah.gnu.org/emacs/emacs-24

This will create an emacs-24 directory under
/home/user/devel/emacs/emacs-bzr, and you can then build it and try
the fix.

> Also I found that "(global-hl-line-mode 1)" slow down scrolling in CC-mode
> enabled buffers in two or more times. Do I need report a bug?

No, this is expected.  hl-line-mode adds itself to post-command-hook,
and moves its overlay after each command that changes the current
line.  What this does is completely disable the redisplay
optimizations used when only the cursor moves without any other
changes to the text, because moving an overlay requires a thorough
redisplay of the window, which is more expensive.

The only bug report that I can think of is a feature request to move
hl-line-mode into the display engine, because the display engine
knowns very well where's the current line (when it decides where to
display the cursor), and can do this highlighting better and much more
efficiently.