diff options
author | Nathan Lilienthal <nathan@nixpulvis.com> | 2021-04-30 18:16:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-30 22:16:48 +0000 |
commit | e3818a226c79f263d6e19fe83f411b199f7e55ef (patch) | |
tree | 7c526bee928fe084a65961df7dcdef36389e117b | |
parent | e2a853b1a787e63b401bcb518cc0edebcec4e958 (diff) | |
download | alacritty-e3818a226c79f263d6e19fe83f411b199f7e55ef.tar.gz alacritty-e3818a226c79f263d6e19fe83f411b199f7e55ef.zip |
Use cell colors for focused match CellRgb
Fixes #5022.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | alacritty.yml | 4 | ||||
-rw-r--r-- | alacritty/src/config/color.rs | 17 | ||||
-rw-r--r-- | alacritty/src/display/content.rs | 16 |
4 files changed, 25 insertions, 13 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index ed914a19..82526473 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Changed - The vi mode cursor is now created in the top-left if the terminal cursor is invisible +- Focused search match will use cell instead of match colors for CellForeground/CellBackground ### Fixed diff --git a/alacritty.yml b/alacritty.yml index a870442e..00e56898 100644 --- a/alacritty.yml +++ b/alacritty.yml @@ -221,8 +221,8 @@ # foreground: '#000000' # background: '#ffffff' #focused_match: - # foreground: CellBackground - # background: CellForeground + # foreground: '#ffffff' + # background: '#000000' #bar: # background: '#c5c8c6' diff --git a/alacritty/src/config/color.rs b/alacritty/src/config/color.rs index d55cf26f..ddb1da29 100644 --- a/alacritty/src/config/color.rs +++ b/alacritty/src/config/color.rs @@ -122,12 +122,27 @@ impl Default for InvertedCellColors { #[derive(ConfigDeserialize, Debug, Copy, Clone, Default, PartialEq, Eq)] pub struct SearchColors { - pub focused_match: InvertedCellColors, + pub focused_match: FocusedMatchColors, pub matches: MatchColors, bar: BarColors, } #[derive(ConfigDeserialize, Debug, Copy, Clone, PartialEq, Eq)] +pub struct FocusedMatchColors { + pub foreground: CellRgb, + pub background: CellRgb, +} + +impl Default for FocusedMatchColors { + fn default() -> Self { + Self { + background: CellRgb::Rgb(Rgb { r: 0x00, g: 0x00, b: 0x00 }), + foreground: CellRgb::Rgb(Rgb { r: 0xff, g: 0xff, b: 0xff }), + } + } +} + +#[derive(ConfigDeserialize, Debug, Copy, Clone, PartialEq, Eq)] pub struct MatchColors { pub foreground: CellRgb, pub background: CellRgb, diff --git a/alacritty/src/display/content.rs b/alacritty/src/display/content.rs index 8f1a74d6..4bef44f5 100644 --- a/alacritty/src/display/content.rs +++ b/alacritty/src/display/content.rs @@ -234,17 +234,13 @@ impl RenderableCell { bg_alpha = 1.0; } } else if content.search.advance(cell.point) { - // Highlight the cell if it is part of a search match. - let config_fg = colors.search.matches.foreground; - let config_bg = colors.search.matches.background; + let focused = content.focused_match.map_or(false, |fm| fm.contains(&cell.point)); + let (config_fg, config_bg) = if focused { + (colors.search.focused_match.foreground, colors.search.focused_match.background) + } else { + (colors.search.matches.foreground, colors.search.matches.background) + }; Self::compute_cell_rgb(&mut fg, &mut bg, &mut bg_alpha, config_fg, config_bg); - - // Apply the focused match colors, using the normal match colors as base reference. - if content.focused_match.map_or(false, |fm| fm.contains(&cell.point)) { - let config_fg = colors.search.focused_match.foreground; - let config_bg = colors.search.focused_match.background; - Self::compute_cell_rgb(&mut fg, &mut bg, &mut bg_alpha, config_fg, config_bg); - } } // Convert cell point to viewport position. |