summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Lilienthal <nathan@nixpulvis.com>2021-04-30 18:16:48 -0400
committerGitHub <noreply@github.com>2021-04-30 22:16:48 +0000
commite3818a226c79f263d6e19fe83f411b199f7e55ef (patch)
tree7c526bee928fe084a65961df7dcdef36389e117b
parente2a853b1a787e63b401bcb518cc0edebcec4e958 (diff)
Use cell colors for focused match CellRgb
Fixes #5022. Co-authored-by: Christian Duerr <contact@christianduerr.com>
-rw-r--r--CHANGELOG.md1
-rw-r--r--alacritty.yml4
-rw-r--r--alacritty/src/config/color.rs17
-rw-r--r--alacritty/src/display/content.rs16
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.