diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2020-11-09 20:34:08 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2020-11-09 20:37:17 +0900 |
commit | f6269f0193e4cf5836c9e1d7c70bdf7354068124 (patch) | |
tree | 1570002071fe62f569b286785a2f5526007faee1 /src/options.go | |
parent | 520eae817a54a324b038a41f7392ae8e23e97e73 (diff) |
Add --padding option
Close #2241
Diffstat (limited to 'src/options.go')
-rw-r--r-- | src/options.go | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/options.go b/src/options.go index 797863cf..d7e1eaa6 100644 --- a/src/options.go +++ b/src/options.go @@ -60,7 +60,8 @@ const usage = `usage: fzf [options] --border[=STYLE] Draw border around the finder [rounded|sharp|horizontal|vertical| top|bottom|left|right] (default: rounded) - --margin=MARGIN Screen margin (TRBL / TB,RL / T,RL,B / T,R,B,L) + --margin=MARGIN Screen margin (TRBL | TB,RL | T,RL,B | T,R,B,L) + --padding=PADDING Padding inside border (TRBL | TB,RL | T,RL,B | T,R,B,L) --info=STYLE Finder info style [default|inline|hidden] --prompt=STR Input prompt (default: '> ') --pointer=STR Pointer to the current line (default: '>') @@ -221,6 +222,7 @@ type Options struct { Header []string HeaderLines int Margin [4]sizeSpec + Padding [4]sizeSpec BorderShape tui.BorderShape Unicode bool Tabstop int @@ -281,6 +283,7 @@ func defaultOptions() *Options { Header: make([]string, 0), HeaderLines: 0, Margin: defaultMargin(), + Padding: defaultMargin(), Unicode: true, Tabstop: 8, ClearOnExit: true, @@ -1076,10 +1079,10 @@ func parsePreviewWindow(opts *previewOpts, input string) { } } -func parseMargin(margin string) [4]sizeSpec { +func parseMargin(opt string, margin string) [4]sizeSpec { margins := strings.Split(margin, ",") checked := func(str string) sizeSpec { - return parseSize(str, 49, "margin") + return parseSize(str, 49, opt) } switch len(margins) { case 1: @@ -1099,7 +1102,7 @@ func parseMargin(margin string) [4]sizeSpec { checked(margins[0]), checked(margins[1]), checked(margins[2]), checked(margins[3])} default: - errorExit("invalid margin: " + margin) + errorExit("invalid " + opt + ": " + margin) } return defaultMargin() } @@ -1324,6 +1327,8 @@ func parseOptions(opts *Options, allArgs []string) { opts.Height = sizeSpec{} case "--no-margin": opts.Margin = defaultMargin() + case "--no-padding": + opts.Padding = defaultMargin() case "--no-border": opts.BorderShape = tui.BorderNone case "--border": @@ -1335,7 +1340,12 @@ func parseOptions(opts *Options, allArgs []string) { opts.Unicode = true case "--margin": opts.Margin = parseMargin( + "margin", nextString(allArgs, &i, "margin required (TRBL / TB,RL / T,RL,B / T,R,B,L)")) + case "--padding": + opts.Padding = parseMargin( + "padding", + nextString(allArgs, &i, "padding required (TRBL / TB,RL / T,RL,B / T,R,B,L)")) case "--tabstop": opts.Tabstop = nextInt(allArgs, &i, "tab stop required") case "--clear": @@ -1404,7 +1414,9 @@ func parseOptions(opts *Options, allArgs []string) { } else if match, value := optString(arg, "--preview-window="); match { parsePreviewWindow(&opts.Preview, value) } else if match, value := optString(arg, "--margin="); match { - opts.Margin = parseMargin(value) + opts.Margin = parseMargin("margin", value) + } else if match, value := optString(arg, "--padding="); match { + opts.Padding = parseMargin("padding", value) } else if match, value := optString(arg, "--tabstop="); match { opts.Tabstop = atoi(value) } else if match, value := optString(arg, "--hscroll-off="); match { |