diff options
-rw-r--r-- | man/man1/fzf.1 | 1 | ||||
-rw-r--r-- | src/options.go | 2 | ||||
-rw-r--r-- | src/terminal.go | 7 | ||||
-rw-r--r-- | src/tui/tui.go | 46 |
4 files changed, 36 insertions, 20 deletions
diff --git a/man/man1/fzf.1 b/man/man1/fzf.1 index 305ff980..860c26e2 100644 --- a/man/man1/fzf.1 +++ b/man/man1/fzf.1 @@ -250,6 +250,7 @@ e.g. \fBfzf --color=bg+:24\fR \fBhl \fRHighlighted substrings \fBfg+ \fRText (current line) \fBbg+ \fRBackground (current line) + \fBgutter \fRGutter on the left (default to \fBbg+\fR) \fBhl+ \fRHighlighted substrings (current line) \fBinfo \fRInfo \fBborder \fRBorder of the preview window and horizontal separators (\fB--border\fR) diff --git a/src/options.go b/src/options.go index fc32344c..f5382598 100644 --- a/src/options.go +++ b/src/options.go @@ -576,6 +576,8 @@ func parseTheme(defaultTheme *tui.ColorTheme, str string) *tui.ColorTheme { theme.Current = ansi case "bg+": theme.DarkBg = ansi + case "gutter": + theme.Gutter = ansi case "hl": theme.Match = ansi case "hl+": diff --git a/src/terminal.go b/src/terminal.go index 4eaf3f0b..8b65e911 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -834,15 +834,16 @@ func (t *Terminal) printItem(result Result, line int, i int, current bool) { } t.move(line, 0, false) - t.window.CPrint(tui.ColCursor, t.strong, label) if current { + t.window.CPrint(tui.ColCurrentCursor, t.strong, label) if selected { - t.window.CPrint(tui.ColSelected, t.strong, ">") + t.window.CPrint(tui.ColCurrentSelected, t.strong, ">") } else { - t.window.CPrint(tui.ColCurrent, t.strong, " ") + t.window.CPrint(tui.ColCurrentSelected, t.strong, " ") } newLine.width = t.printHighlighted(result, t.strong, tui.ColCurrent, tui.ColCurrentMatch, true, true) } else { + t.window.CPrint(tui.ColCursor, t.strong, label) if selected { t.window.CPrint(tui.ColSelected, t.strong, ">") } else { diff --git a/src/tui/tui.go b/src/tui/tui.go index f1fac5e3..5d0035d7 100644 --- a/src/tui/tui.go +++ b/src/tui/tui.go @@ -172,6 +172,7 @@ type ColorTheme struct { Fg Color Bg Color DarkBg Color + Gutter Color Prompt Color Match Color Current Color @@ -272,17 +273,19 @@ var ( Dark256 *ColorTheme Light256 *ColorTheme - ColNormal ColorPair - ColPrompt ColorPair - ColMatch ColorPair - ColCurrent ColorPair - ColCurrentMatch ColorPair - ColSpinner ColorPair - ColInfo ColorPair - ColCursor ColorPair - ColSelected ColorPair - ColHeader ColorPair - ColBorder ColorPair + ColPrompt ColorPair + ColNormal ColorPair + ColMatch ColorPair + ColCursor ColorPair + ColSelected ColorPair + ColCurrent ColorPair + ColCurrentMatch ColorPair + ColCurrentCursor ColorPair + ColCurrentSelected ColorPair + ColSpinner ColorPair + ColInfo ColorPair + ColHeader ColorPair + ColBorder ColorPair ) func EmptyTheme() *ColorTheme { @@ -290,6 +293,7 @@ func EmptyTheme() *ColorTheme { Fg: colUndefined, Bg: colUndefined, DarkBg: colUndefined, + Gutter: colUndefined, Prompt: colUndefined, Match: colUndefined, Current: colUndefined, @@ -312,6 +316,7 @@ func init() { Fg: colDefault, Bg: colDefault, DarkBg: colBlack, + Gutter: colBlack, Prompt: colBlue, Match: colGreen, Current: colYellow, @@ -326,6 +331,7 @@ func init() { Fg: colDefault, Bg: colDefault, DarkBg: 236, + Gutter: colUndefined, Prompt: 110, Match: 108, Current: 254, @@ -340,6 +346,7 @@ func init() { Fg: colDefault, Bg: colDefault, DarkBg: 251, + Gutter: colUndefined, Prompt: 25, Match: 66, Current: 237, @@ -371,6 +378,7 @@ func initTheme(theme *ColorTheme, baseTheme *ColorTheme, forceBlack bool) { theme.Fg = o(baseTheme.Fg, theme.Fg) theme.Bg = o(baseTheme.Bg, theme.Bg) theme.DarkBg = o(baseTheme.DarkBg, theme.DarkBg) + theme.Gutter = o(theme.DarkBg, o(baseTheme.Gutter, theme.Gutter)) theme.Prompt = o(baseTheme.Prompt, theme.Prompt) theme.Match = o(baseTheme.Match, theme.Match) theme.Current = o(baseTheme.Current, theme.Current) @@ -392,27 +400,31 @@ func initPalette(theme *ColorTheme) { return ColorPair{fg, bg, idx} } if theme != nil { - ColNormal = pair(theme.Fg, theme.Bg) ColPrompt = pair(theme.Prompt, theme.Bg) + ColNormal = pair(theme.Fg, theme.Bg) ColMatch = pair(theme.Match, theme.Bg) + ColCursor = pair(theme.Cursor, theme.Gutter) + ColSelected = pair(theme.Selected, theme.Gutter) ColCurrent = pair(theme.Current, theme.DarkBg) ColCurrentMatch = pair(theme.CurrentMatch, theme.DarkBg) + ColCurrentCursor = pair(theme.Cursor, theme.DarkBg) + ColCurrentSelected = pair(theme.Selected, theme.DarkBg) ColSpinner = pair(theme.Spinner, theme.Bg) ColInfo = pair(theme.Info, theme.Bg) - ColCursor = pair(theme.Cursor, theme.DarkBg) - ColSelected = pair(theme.Selected, theme.DarkBg) ColHeader = pair(theme.Header, theme.Bg) ColBorder = pair(theme.Border, theme.Bg) } else { - ColNormal = pair(colDefault, colDefault) ColPrompt = pair(colDefault, colDefault) + ColNormal = pair(colDefault, colDefault) ColMatch = pair(colDefault, colDefault) + ColCursor = pair(colDefault, colDefault) + ColSelected = pair(colDefault, colDefault) ColCurrent = pair(colDefault, colDefault) ColCurrentMatch = pair(colDefault, colDefault) + ColCurrentCursor = pair(colDefault, colDefault) + ColCurrentSelected = pair(colDefault, colDefault) ColSpinner = pair(colDefault, colDefault) ColInfo = pair(colDefault, colDefault) - ColCursor = pair(colDefault, colDefault) - ColSelected = pair(colDefault, colDefault) ColHeader = pair(colDefault, colDefault) ColBorder = pair(colDefault, colDefault) } |