I use (global-hl-line-mode 1) in order to highlight the current line. This changes the text colours of the highlighted line. Is it possible to highlight while keeping the current syntax highlighting colours (so changing only the background)?
Just for reference, try
(set-face-attribute 'hl-line nil :inherit nil :background "gray6")
This is the case by default for me:
hl-line-mode by default uses a face which only specifies a background color. That face is
hl-line which by default just inherits from
highlight. So maybe the problem is simply your that
highlight face specifies both a background and a foreground color. I recommend you
M-x customize-face and either change your
highlight face or your
hl-line face so as to keep its foreground color unspecified.
This works for me, with this in my .emacs. See how the syntax colours are nicely preserved? (thx Yadoo86)
;; highlight line with the cursor, preserving the colours. (set-face-attribute 'hl-line nil :inherit nil :background "gray80") (global-hl-line-mode 1)
hl-line-mode) always overrides text-property highlighting (e.g. font-lock). See the question this is a duplicate of.