mirror of
https://github.com/junegunn/fzf.git
synced 2026-04-20 22:58:08 +08:00
* Fix nth attr merge order to respect precedence hierarchy nth attrs were merged ON TOP of current-fg/selected-fg attrs, so nth:regular would clear attrs like underline from current-fg. Fix the merge chain to apply nth BEFORE the line-type overlay: fg < nth < selected-fg < current-fg < hl < selected-hl < current-hl Store raw current-fg and selected-fg attrs in ColorTheme before they get merged with fg/ListFg, then pass them as nthOverlay through printHighlighted to colorOffsets where the correct merge chain is computed: fgAttr.Merge(nthAttr).Merge(nthOverlay). Fix #4687 * Make current-fg inherit from list-fg instead of fg current-fg was inheriting from fg, not list-fg, so setting list-fg had no effect on the current line. e.g. fzf --color fg:dim,list-fg:underline,nth:regular -d / --nth -1 The non-nth part of the current line was dim (from fg) instead of underline (from list-fg). Resolve ListFg/ListBg earlier in InitTheme so Current can inherit from them. * Make selected-fg inherit from list-fg via merge instead of override selected-fg used o() which replaces the attr from list-fg entirely. e.g. with fg:dim,selected-fg:italic, the dim was lost on selected lines because o() replaced dim with italic instead of merging them. Use ColorAttr.Merge() so attrs are combined additively, consistent with how current-fg inherits from list-fg. * Apply selected-fg attrs on current line when item is selected When an item is both current and selected, the current-line rendering ignored selected-fg attrs entirely. e.g. echo foo | fzf --color fg:dim,nth:regular,current-fg:underline,selected-fg:italic --bind result:select --multi The italic from selected-fg was lost. Merge NthSelectedAttr into the overlay and rebuild colBase attr with the correct precedence chain: fg < selected-fg < current-fg.
9.8 KiB
9.8 KiB