lin

Homepage: https://git.sr.ht/~protesilaos/lin

Author: Protesilaos Stavrou

Updated:

Summary

Make `hl-line-mode' more suitable for selection UIs

Commentary

Lin is a stylistic enhancement for Emacs' built-in `hl-line-mode'.
It remaps the `hl-line' face (or equivalent) buffer-locally to a
style that is optimal for major modes where line selection is the
primary mode of interaction.

The idea is that `hl-line-mode' cannot work equally well for contexts
with competing priorities: (i) line selection, or (ii) simple line
highlight.  In the former case, the current line needs to be made
prominent because it carries a specific meaning of some significance
in the given context: the user has to select a line.  Whereas in the
latter case, the primary mode of interaction does not revolve around
the line highlight itself: it may be because the focus is on editing
text or reading through the buffer's contents, so the current line
highlight is more of a reminder of the point's location on the
vertical axis.

`lin-mode' enables `hl-line-mode' in the current buffer and remaps
the appropriate face to the `lin-face'.  The `lin-global-mode'
follows the same principle, though it applies to all hooks specified
in the user option `lin-mode-hooks'.

Users can select their preferred style by customizing the user option
`lin-face'.  Options include the faces `lin-red', `lin-green',
`lin-yellow', `lin-blue' (default), `lin-magenta', `lin-cyan',
`lin-mac', `lin-red-override-fg', `lin-green-override-fg',
`lin-yellow-override-fg', `lin-blue-override-fg',
`lin-magenta-override-fg', `lin-cyan-override-fg',
`lin-mac-override-fg', or any other face that preferably has a
background attribute.  The Lin faces with the =-override-fg= suffix
set a foreground value which replaces that of the underlying text.
Whereas the others only specify a background attribute.

Consult the manual for further details.  Or visit the documentation's
web page: .

Dependencies