summaryrefslogtreecommitdiff
path: root/src/options.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2025-01-02 16:24:46 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2025-01-02 16:25:00 +0900
commitee3916be17a340205875f9ccfaf71a1683a2fdf9 (patch)
tree0cc0e5d4d7067f0135f01431795a9f4541f7e532 /src/options.go
parentfd513f8af8191cd60364497f4184b8accd988282 (diff)
downloadfzf-ee3916be17a340205875f9ccfaf71a1683a2fdf9.tar.gz
Border around the input section (prompt + info)
Close #4154
Diffstat (limited to 'src/options.go')
-rw-r--r--src/options.go513
1 files changed, 286 insertions, 227 deletions
diff --git a/src/options.go b/src/options.go
index 40a2a2e3..03749568 100644
--- a/src/options.go
+++ b/src/options.go
@@ -27,151 +27,152 @@ Author: Junegunn Choi <junegunn.c@gmail.com>
Usage: fzf [options]
Search
- -x, --extended Extended-search mode
- (enabled by default; +x or --no-extended to disable)
- -e, --exact Enable Exact-match
- -i, --ignore-case Case-insensitive match (default: smart-case match)
- +i, --no-ignore-case Case-sensitive match
- --scheme=SCHEME Scoring scheme [default|path|history]
- --literal Do not normalize latin script letters before matching
- -n, --nth=N[,..] Comma-separated list of field index expressions
- for limiting search scope. Each can be a non-zero
- integer or a range expression ([BEGIN]..[END]).
- --with-nth=N[,..] Transform the presentation of each line using
- field index expressions
- -d, --delimiter=STR Field delimiter regex (default: AWK-style)
- +s, --no-sort Do not sort the result
- --tail=NUM Maximum number of items to keep in memory
- --track Track the current selection when the result is updated
- --tac Reverse the order of the input
- --disabled Do not perform search
- --tiebreak=CRI[,..] Comma-separated list of sort criteria to apply
- when the scores are tied [length|chunk|begin|end|index]
- (default: length)
+ -x, --extended Extended-search mode
+ (enabled by default; +x or --no-extended to disable)
+ -e, --exact Enable Exact-match
+ -i, --ignore-case Case-insensitive match (default: smart-case match)
+ +i, --no-ignore-case Case-sensitive match
+ --scheme=SCHEME Scoring scheme [default|path|history]
+ --literal Do not normalize latin script letters before matching
+ -n, --nth=N[,..] Comma-separated list of field index expressions
+ for limiting search scope. Each can be a non-zero
+ integer or a range expression ([BEGIN]..[END]).
+ --with-nth=N[,..] Transform the presentation of each line using
+ field index expressions
+ -d, --delimiter=STR Field delimiter regex (default: AWK-style)
+ +s, --no-sort Do not sort the result
+ --tail=NUM Maximum number of items to keep in memory
+ --track Track the current selection when the result is updated
+ --tac Reverse the order of the input
+ --disabled Do not perform search
+ --tiebreak=CRI[,..] Comma-separated list of sort criteria to apply
+ when the scores are tied [length|chunk|begin|end|index]
+ (default: length)
Interface
- -m, --multi[=MAX] Enable multi-select with tab/shift-tab
- --no-mouse Disable mouse
- --bind=KEYBINDS Custom key bindings. Refer to the man page.
- --cycle Enable cyclic scroll
- --wrap Enable line wrap
- --wrap-sign=STR Indicator for wrapped lines
- --no-multi-line Disable multi-line display of items when using --read0
- --gap[=N] Render empty lines between each item
- --keep-right Keep the right end of the line visible on overflow
- --scroll-off=LINES Number of screen lines to keep above or below when
- scrolling to the top or to the bottom (default: 0)
- --no-hscroll Disable horizontal scroll
- --hscroll-off=COLS Number of screen columns to keep to the right of the
- highlighted substring (default: 10)
- --filepath-word Make word-wise movements respect path separators
- --jump-labels=CHARS Label characters for jump mode
+ -m, --multi[=MAX] Enable multi-select with tab/shift-tab
+ --no-mouse Disable mouse
+ --bind=KEYBINDS Custom key bindings. Refer to the man page.
+ --cycle Enable cyclic scroll
+ --wrap Enable line wrap
+ --wrap-sign=STR Indicator for wrapped lines
+ --no-multi-line Disable multi-line display of items when using --read0
+ --gap[=N] Render empty lines between each item
+ --keep-right Keep the right end of the line visible on overflow
+ --scroll-off=LINES Number of screen lines to keep above or below when
+ scrolling to the top or to the bottom (default: 0)
+ --no-hscroll Disable horizontal scroll
+ --hscroll-off=COLS Number of screen columns to keep to the right of the
+ highlighted substring (default: 10)
+ --filepath-word Make word-wise movements respect path separators
+ --jump-labels=CHARS Label characters for jump mode
Layout
- --height=[~]HEIGHT[%] Display fzf window below the cursor with the given
- height instead of using fullscreen.
- A negative value is calculated as the terminal height
- minus the given value.
- If prefixed with '~', fzf will determine the height
- according to the input size.
- --min-height=HEIGHT Minimum height when --height is given in percent
- (default: 10)
- --tmux[=OPTS] Start fzf in a tmux popup (requires tmux 3.3+)
- [center|top|bottom|left|right][,SIZE[%]][,SIZE[%]]
- (default: center,50%)
- --layout=LAYOUT Choose layout: [default|reverse|reverse-list]
- --border[=STYLE] Draw border around the finder
- [rounded|sharp|bold|block|thinblock|double|horizontal|vertical|
- top|bottom|left|right|none] (default: rounded)
- --border-label=LABEL Label to print on the border
- --border-label-pos=COL Position of the border label
- [POSITIVE_INTEGER: columns from left|
- NEGATIVE_INTEGER: columns from right][:bottom]
- (default: 0 or center)
- --list-border[=STYLE] Draw border around the list section
- [rounded|sharp|bold|block|thinblock|double|horizontal|vertical|
- top|bottom|left|right|none] (default: none)
- --list-label=LABEL Label to print on the list border
- --list-label-pos=COL Position of the list label
- [POSITIVE_INTEGER: columns from left|
- NEGATIVE_INTEGER: columns from right][:bottom]
- (default: 0 or center)
- --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|right|hidden|inline[-right][:PREFIX]]
- --info-command=COMMAND Command to generate info line
- --separator=STR String to form horizontal separator on info line
- --no-separator Hide info line separator
- --scrollbar[=C1[C2]] Scrollbar character(s) (each for main and preview window)
- --no-scrollbar Hide scrollbar
- --prompt=STR Input prompt (default: '> ')
- --pointer=STR Pointer to the current line (default: '▌' or '>')
- --marker=STR Multi-select marker (default: '┃' or '>')
- --marker-multi-line=STR Multi-select marker for multi-line entries;
- 3 elements for top, middle, and bottom (default: '╻┃╹')
- --header=STR String to print as header
- --header-lines=N The first N lines of the input are treated as header
- --header-first Print header before the prompt line
- --ellipsis=STR Ellipsis to show when line is truncated (default: '··')
+ --height=[~]HEIGHT[%] Display fzf window below the cursor with the given
+ height instead of using fullscreen.
+ A negative value is calculated as the terminal height
+ minus the given value.
+ If prefixed with '~', fzf will determine the height
+ according to the input size.
+ --min-height=HEIGHT Minimum height when --height is given in percent
+ (default: 10)
+ --tmux[=OPTS] Start fzf in a tmux popup (requires tmux 3.3+)
+ [center|top|bottom|left|right][,SIZE[%]][,SIZE[%]]
+ (default: center,50%)
+ --layout=LAYOUT Choose layout: [default|reverse|reverse-list]
+ --border[=STYLE] Draw border around the finder
+ [rounded|sharp|bold|block|thinblock|double|horizontal|vertical|
+ top|bottom|left|right|none] (default: rounded)
+ --border-label=LABEL Label to print on the border
+ --border-label-pos=COL Position of the border label
+ [POSITIVE_INTEGER: columns from left|
+ NEGATIVE_INTEGER: columns from right][:bottom]
+ (default: 0 or center)
+ --list-border[=STYLE] Draw border around the list section
+ [rounded|sharp|bold|block|thinblock|double|horizontal|vertical|
+ top|bottom|left|right|none] (default: none)
+ --list-label=LABEL Label to print on the list border
+ --list-label-pos=COL Position of the list label
+ [POSITIVE_INTEGER: columns from left|
+ NEGATIVE_INTEGER: columns from right][:bottom]
+ (default: 0 or center)
+ --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|right|hidden|inline[-right][:PREFIX]]
+ --info-command=COMMAND Command to generate info line
+ --separator=STR String to form horizontal separator on info line
+ --no-separator Hide info line separator
+ --scrollbar[=C1[C2]] Scrollbar character(s) (each for main and preview window)
+ --no-scrollbar Hide scrollbar
+ --prompt=STR Input prompt (default: '> ')
+ --pointer=STR Pointer to the current line (default: '▌' or '>')
+ --marker=STR Multi-select marker (default: '┃' or '>')
+ --marker-multi-line=STR Multi-select marker for multi-line entries;
+ 3 elements for top, middle, and bottom (default: '╻┃╹')
+ --header=STR String to print as header
+ --header-lines=N The first N lines of the input are treated as header
+ --header-first Print header before the prompt line
+ --ellipsis=STR Ellipsis to show when line is truncated (default: '··')
Display
- --ansi Enable processing of ANSI color codes
- --tabstop=SPACES Number of spaces for a tab character (default: 8)
- --color=COLSPEC Base scheme (dark|light|16|bw) and/or custom colors
- --highlight-line Highlight the whole current line
- --no-bold Do not use bold text
+ --ansi Enable processing of ANSI color codes
+ --tabstop=SPACES Number of spaces for a tab character (default: 8)
+ --color=COLSPEC Base scheme (dark|light|16|bw) and/or custom colors
+ --highlight-line Highlight the whole current line
+ --no-bold Do not use bold text
History
- --history=FILE History file
- --history-size=N Maximum number of history entries (default: 1000)
+ --history=FILE History file
+ --history-size=N Maximum number of history entries (default: 1000)
Preview
- --preview=COMMAND Command to preview highlighted line ({})
- --preview-window=OPT Preview window layout (default: right:50%)
- [up|down|left|right][,SIZE[%]]
- [,[no]wrap][,[no]cycle][,[no]follow][,[no]info]
- [,[no]hidden][,border-BORDER_OPT]
- [,+SCROLL[OFFSETS][/DENOM]][,~HEADER_LINES]
- [,default][,<SIZE_THRESHOLD(ALTERNATIVE_LAYOUT)]
+ --preview=COMMAND Command to preview highlighted line ({})
+ --preview-window=OPT Preview window layout (default: right:50%)
+ [up|down|left|right][,SIZE[%]]
+ [,[no]wrap][,[no]cycle][,[no]follow][,[no]info]
+ [,[no]hidden][,border-BORDER_OPT]
+ [,+SCROLL[OFFSETS][/DENOM]][,~HEADER_LINES]
+ [,default][,<SIZE_THRESHOLD(ALTERNATIVE_LAYOUT)]
+ --preview-border[=STYLE] Short for --preview-window=border-STYLE
--preview-label=LABEL
- --preview-label-pos=N Same as --border-label and --border-label-pos,
- but for preview window
+ --preview-label-pos=N Same as --border-label and --border-label-pos,
+ but for preview window
Scripting
- -q, --query=STR Start the finder with the given query
- -1, --select-1 Automatically select the only match
- -0, --exit-0 Exit immediately when there's no match
- -f, --filter=STR Filter mode. Do not start interactive finder.
- --print-query Print query as the first line
- --expect=KEYS Comma-separated list of keys to complete fzf
- --read0 Read input delimited by ASCII NUL characters
- --print0 Print output delimited by ASCII NUL characters
- --sync Synchronous search for multi-staged filtering
- --with-shell=STR Shell command and flags to start child processes with
- --listen[=[ADDR:]PORT] Start HTTP server to receive actions (POST /)
- (To allow remote process execution, use --listen-unsafe)
-
- Directory traversal (Only used when $FZF_DEFAULT_COMMAND is not set)
- --walker=OPTS [file][,dir][,follow][,hidden] (default: file,follow,hidden)
- --walker-root=DIR [...] List of directories to walk (default: .)
- --walker-skip=DIRS Comma-separated list of directory names to skip
- (default: .git,node_modules)
+ -q, --query=STR Start the finder with the given query
+ -1, --select-1 Automatically select the only match
+ -0, --exit-0 Exit immediately when there's no match
+ -f, --filter=STR Filter mode. Do not start interactive finder.
+ --print-query Print query as the first line
+ --expect=KEYS Comma-separated list of keys to complete fzf
+ --read0 Read input delimited by ASCII NUL characters
+ --print0 Print output delimited by ASCII NUL characters
+ --sync Synchronous search for multi-staged filtering
+ --with-shell=STR Shell command and flags to start child processes with
+ --listen[=[ADDR:]PORT] Start HTTP server to receive actions (POST /)
+ (To allow remote process execution, use --listen-unsafe)
+
+ Directory traversal (Only used when $FZF_DEFAULT_COMMAND is not set)
+ --walker=OPTS [file][,dir][,follow][,hidden] (default: file,follow,hidden)
+ --walker-root=DIR [...] List of directories to walk (default: .)
+ --walker-skip=DIRS Comma-separated list of directory names to skip
+ (default: .git,node_modules)
Shell integration
- --bash Print script to set up Bash shell integration
- --zsh Print script to set up Zsh shell integration
- --fish Print script to set up Fish shell integration
+ --bash Print script to set up Bash shell integration
+ --zsh Print script to set up Zsh shell integration
+ --fish Print script to set up Fish shell integration
Help
- --version Display version information and exit
- --help Show this message
- --man Show man page
+ --version Display version information and exit
+ --help Show this message
+ --man Show man page
Environment variables
- FZF_DEFAULT_COMMAND Default command to use when input is tty
- FZF_DEFAULT_OPTS Default options (e.g. '--layout=reverse --info=inline')
- FZF_DEFAULT_OPTS_FILE Location of the file to read default options from
- FZF_API_KEY X-API-Key header for HTTP server (--listen)
+ FZF_DEFAULT_COMMAND Default command to use when input is tty
+ FZF_DEFAULT_OPTS Default options (e.g. '--layout=reverse --info=inline')
+ FZF_DEFAULT_OPTS_FILE Location of the file to read default options from
+ FZF_API_KEY X-API-Key header for HTTP server (--listen)
`
@@ -444,102 +445,104 @@ type walkerOpts struct {
// Options stores the values of command-line options
type Options struct {
- Input chan string
- Output chan string
- NoWinpty bool
- Tmux *tmuxOptions
- ForceTtyIn bool
- ProxyScript string
- Bash bool
- Zsh bool
- Fish bool
- Man bool
- Fuzzy bool
- FuzzyAlgo algo.Algo
- Scheme string
- Extended bool
- Phony bool
- Case Case
- Normalize bool
- Nth []Range
- WithNth []Range
- Delimiter Delimiter
- Sort int
- Track trackOption
- Tac bool
- Tail int
- Criteria []criterion
- Multi int
- Ansi bool
- Mouse bool
- Theme *tui.ColorTheme
- Black bool
- Bold bool
- Height heightSpec
- MinHeight int
- Layout layoutType
- Cycle bool
- Wrap bool
- WrapSign *string
- MultiLine bool
- CursorLine bool
- KeepRight bool
- Hscroll bool
- HscrollOff int
- ScrollOff int
- FileWord bool
- InfoStyle infoStyle
- InfoPrefix string
- InfoCommand string
- Separator *string
- JumpLabels string
- Prompt string
- Pointer *string
- Marker *string
- MarkerMulti *[3]string
- Query string
- Select1 bool
- Exit0 bool
- Filter *string
- ToggleSort bool
- Expect map[tui.Event]string
- Keymap map[tui.Event][]*action
- Preview previewOpts
- PrintQuery bool
- ReadZero bool
- Printer func(string)
- PrintSep string
- Sync bool
- History *History
- Header []string
- HeaderLines int
- HeaderFirst bool
- Gap int
- Ellipsis *string
- Scrollbar *string
- Margin [4]sizeSpec
- Padding [4]sizeSpec
- BorderShape tui.BorderShape
- ListBorderShape tui.BorderShape
- BorderLabel labelOpts
- ListLabel labelOpts
- PreviewLabel labelOpts
- Unicode bool
- Ambidouble bool
- Tabstop int
- WithShell string
- ListenAddr *listenAddress
- Unsafe bool
- ClearOnExit bool
- WalkerOpts walkerOpts
- WalkerRoot []string
- WalkerSkip []string
- Version bool
- Help bool
- CPUProfile string
- MEMProfile string
- BlockProfile string
- MutexProfile string
+ Input chan string
+ Output chan string
+ NoWinpty bool
+ Tmux *tmuxOptions
+ ForceTtyIn bool
+ ProxyScript string
+ Bash bool
+ Zsh bool
+ Fish bool
+ Man bool
+ Fuzzy bool
+ FuzzyAlgo algo.Algo
+ Scheme string
+ Extended bool
+ Phony bool
+ Case Case
+ Normalize bool
+ Nth []Range
+ WithNth []Range
+ Delimiter Delimiter
+ Sort int
+ Track trackOption
+ Tac bool
+ Tail int
+ Criteria []criterion
+ Multi int
+ Ansi bool
+ Mouse bool
+ Theme *tui.ColorTheme
+ Black bool
+ Bold bool
+ Height heightSpec
+ MinHeight int
+ Layout layoutType
+ Cycle bool
+ Wrap bool
+ WrapSign *string
+ MultiLine bool
+ CursorLine bool
+ KeepRight bool
+ Hscroll bool
+ HscrollOff int
+ ScrollOff int
+ FileWord bool
+ InfoStyle infoStyle
+ InfoPrefix string
+ InfoCommand string
+ Separator *string
+ JumpLabels string
+ Prompt string
+ Pointer *string
+ Marker *string
+ MarkerMulti *[3]string
+ Query string
+ Select1 bool
+ Exit0 bool
+ Filter *string
+ ToggleSort bool
+ Expect map[tui.Event]string
+ Keymap map[tui.Event][]*action
+ Preview previewOpts
+ PrintQuery bool
+ ReadZero bool
+ Printer func(string)
+ PrintSep string
+ Sync bool
+ History *History
+ Header []string
+ HeaderLines int
+ HeaderFirst bool
+ Gap int
+ Ellipsis *string
+ Scrollbar *string
+ Margin [4]sizeSpec
+ Padding [4]sizeSpec
+ BorderShape tui.BorderShape
+ ListBorderShape tui.BorderShape
+ InputBorderShape tui.BorderShape
+ InputLabel labelOpts
+ BorderLabel labelOpts
+ ListLabel labelOpts
+ PreviewLabel labelOpts
+ Unicode bool
+ Ambidouble bool
+ Tabstop int
+ WithShell string
+ ListenAddr *listenAddress
+ Unsafe bool
+ ClearOnExit bool
+ WalkerOpts walkerOpts
+ WalkerRoot []string
+ WalkerSkip []string
+ Version bool
+ Help bool
+ CPUProfile string
+ MEMProfile string
+ BlockProfile string
+ MutexProfile string
}
func filterNonEmpty(input []string) []string {
@@ -1168,7 +1171,7 @@ func parseTheme(defaultTheme *tui.ColorTheme, str string) (*tui.ColorTheme, erro
}
}
switch components[0] {
- case "query", "input":
+ case "query", "input", "input-fg":
mergeAttr(&theme.Input)
case "disabled":
mergeAttr(&theme.Disabled)
@@ -1220,6 +1223,12 @@ func parseTheme(defaultTheme *tui.ColorTheme, str string) (*tui.ColorTheme, erro
mergeAttr(&theme.PreviewLabel)
case "prompt":
mergeAttr(&theme.Prompt)
+ case "input-bg":
+ mergeAttr(&theme.InputBg)
+ case "input-border":
+ mergeAttr(&theme.InputBorder)
+ case "input-label":
+ mergeAttr(&theme.InputLabel)
case "spinner":
mergeAttr(&theme.Spinner)
case "info":
@@ -1283,7 +1292,7 @@ const (
func init() {
executeRegexp = regexp.MustCompile(
- `(?si)[:+](become|execute(?:-multi|-silent)?|reload(?:-sync)?|preview|(?:change|transform)-(?:header|query|prompt|border-label|list-label|preview-label)|transform|change-(?:preview-window|preview|multi)|(?:re|un)bind|pos|put|print)`)
+ `(?si)[:+](become|execute(?:-multi|-silent)?|reload(?:-sync)?|preview|(?:change|transform)-(?:header|query|prompt|border-label|list-label|preview-label|input-label)|transform|change-(?:preview-window|preview|multi)|(?:re|un)bind|pos|put|print)`)
splitRegexp = regexp.MustCompile("[,:]+")
actionNameRegexp = regexp.MustCompile("(?i)^[a-z-]+")
}
@@ -1639,14 +1648,16 @@ func isExecuteAction(str string) actionType {
return actRebind
case "preview":
return actPreview
+ case "change-header":
+ return actChangeHeader
case "change-list-label":
return actChangeListLabel
case "change-border-label":
return actChangeBorderLabel
- case "change-header":
- return actChangeHeader
case "change-preview-label":
return actChangePreviewLabel
+ case "change-input-label":
+ return actChangeInputLabel
case "change-preview-window":
return actChangePreviewWindow
case "change-preview":
@@ -1677,6 +1688,8 @@ func isExecuteAction(str string) actionType {
return actTransformBorderLabel
case "transform-preview-label":
return actTransformPreviewLabel
+ case "transform-input-label":
+ return actTransformInputLabel
case "transform-header":
return actTransformHeader
case "transform-prompt":
@@ -2453,6 +2466,13 @@ func parseOptions(index *int, opts *Options, allArgs []string) error {
if err := parsePreviewWindow(&opts.Preview, str); err != nil {
return err
}
+ case "--no-preview-border":
+ opts.Preview.border = tui.BorderNone
+ case "--preview-border":
+ hasArg, arg := optionalNextString(allArgs, &i)
+ if opts.Preview.border, err = parseBorder(arg, !hasArg); err != nil {
+ return err
+ }
case "--height":
str, err := nextString(allArgs, &i, "height required: [~]HEIGHT[%]")
if err != nil {
@@ -2500,6 +2520,27 @@ func parseOptions(index *int, opts *Options, allArgs []string) error {
if err := parseLabelPosition(&opts.ListLabel, pos); err != nil {
return err
}
+ case "--no-input-border":
+ opts.InputBorderShape = tui.BorderNone
+ case "--input-border":
+ hasArg, arg := optionalNextString(allArgs, &i)
+ if opts.InputBorderShape, err = parseBorder(arg, !hasArg); err != nil {
+ return err
+ }
+ case "--no-input-label":
+ opts.InputLabel.label = ""
+ case "--input-label":
+ if opts.InputLabel.label, err = nextString(allArgs, &i, "input label required"); err != nil {
+ return err
+ }
+ case "--input-label-pos":
+ pos, err := nextString(allArgs, &i, "input label position required (positive or negative integer or 'center')")
+ if err != nil {
+ return err
+ }
+ if err := parseLabelPosition(&opts.InputLabel, pos); err != nil {
+ return err
+ }
case "--no-border-label":
opts.BorderLabel.label = ""
case "--border-label":
@@ -2637,6 +2678,10 @@ func parseOptions(index *int, opts *Options, allArgs []string) error {
if opts.BorderShape, err = parseBorder(value, false); err != nil {
return err
}
+ } else if match, value := optString(arg, "--preview-border="); match {
+ if opts.Preview.border, err = parseBorder(value, false); err != nil {
+ return err
+ }
} else if match, value := optString(arg, "--list-border="); match {
if opts.ListBorderShape, err = parseBorder(value, false); err != nil {
return err
@@ -2647,6 +2692,16 @@ func parseOptions(index *int, opts *Options, allArgs []string) error {
if err := parseLabelPosition(&opts.ListLabel, value); err != nil {
return err
}
+ } else if match, value := optString(arg, "--input-border="); match {
+ if opts.InputBorderShape, err = parseBorder(value, false); err != nil {
+ return err
+ }
+ } else if match, value := optString(arg, "--input-label="); match {
+ opts.InputLabel.label = value
+ } else if match, value := optString(arg, "--input-label-pos="); match {
+ if err := parseLabelPosition(&opts.InputLabel, value); err != nil {
+ return err
+ }
} else if match, value := optString(arg, "--border-label="); match {
opts.BorderLabel.label = value
} else if match, value := optString(arg, "--border-label-pos="); match {
@@ -2922,6 +2977,10 @@ func postProcessOptions(opts *Options) error {
opts.ListBorderShape = tui.BorderNone
}
+ if opts.InputBorderShape == tui.BorderUndefined {
+ opts.InputBorderShape = tui.BorderNone
+ }
+
if opts.Pointer == nil {
defaultPointer := "▌"
if !opts.Unicode {