summaryrefslogtreecommitdiffstats
path: root/src/options.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2020-11-09 20:34:08 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2020-11-09 20:37:17 +0900
commitf6269f0193e4cf5836c9e1d7c70bdf7354068124 (patch)
tree1570002071fe62f569b286785a2f5526007faee1 /src/options.go
parent520eae817a54a324b038a41f7392ae8e23e97e73 (diff)
Add --padding option
Close #2241
Diffstat (limited to 'src/options.go')
-rw-r--r--src/options.go22
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 {