GNU bug report logs - #51580
hl-line-mode doesn't override global-hl-line-mode in current buffer

Previous Next

Package: emacs;

Reported by: Stefan Kangas <stefan <at> marxist.se>

Date: Wed, 3 Nov 2021 06:48:01 UTC

Severity: normal

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Gregory Heytings <gregory <at> heytings.org>
To: Stefan Kangas <stefan <at> marxist.se>
Cc: 51580 <at> debbugs.gnu.org
Subject: bug#51580: hl-line-mode doesn't override global-hl-line-mode in current buffer
Date: Wed, 03 Nov 2021 11:42:22 +0000
>>> It seems like there is currently no way to use `global-hl-line-mode' 
>>> while disabling it for individual buffers.
>>
>> There is one: (setq-local global-hl-line-mode nil).
>
> Here, that leaves an overlay in the buffer.  Does it not do that for 
> you?
>
> [You didn't quote it, but I wrote "(setq-default global-hl-line-mode 
> nil)" in the bug report.  That was a typo.  I meant to write 
> "(setq-local global-hl-line-mode nil)".]
>

Oh, now I see what you mean.  Indeed I had seen your setq-default, but did 
not guess it meant setq-local.  Indeed, M-: (setq-local 
global-hl-line-mode nil) leaves an overlay in the buffer.  I use this in 
buffer setup hooks, so the overlay is not created.  If you want to remove 
that overlay, you also need to call global-hl-line-unhighlight:

(defun buffer-deactivate-global-hl-line-mode ()
  (interactive)
  (global-hl-line-unhighlight)
  (setq-local global-hl-line-mode nil))




This bug report was last modified 2 years and 245 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.